2050 changed files with 648607 additions and 0 deletions
@ -0,0 +1,112 @@ |
|||
using ce.autofac.extension; |
|||
using EC.App.AutoWeight.Driver; |
|||
using EC.App.AutoWeight.Truck; |
|||
using learun.application; |
|||
using learun.util; |
|||
using Newtonsoft.Json.Linq; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using EC.App.AutoWeight.Supplier; |
|||
|
|||
namespace EC.App.AutoWeight.Auth |
|||
{ |
|||
public class AuthBll : BLLBase, AuthIBll, BLL |
|||
{ |
|||
private readonly AuthService _service = new AuthService(); |
|||
private readonly SupplierService _supplierService = new SupplierService(); |
|||
private readonly DriverService _driverService = new DriverService(); |
|||
private readonly TruckService _truckService = new TruckService(); |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<AuthEntity> GetEntity(string keyValue) |
|||
{ |
|||
return _service.GetEntity(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<AuthEntity>> GetList(JObject queryParam) |
|||
{ |
|||
return _service.GetList(queryParam); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<AuthEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
return _service.GetPageList(pagination, queryParam); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await _service.Delete(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_driver实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> SaveEntity(string keyValue, AuthEntity entity) |
|||
{ |
|||
var userAccount = GetUserAccount(); |
|||
if (entity == null) |
|||
return -1; |
|||
|
|||
if (!entity.IsFormValid()) |
|||
return -1; |
|||
|
|||
var temp = (entity.Id > 0) ? await _service.GetEntity(new { Id = entity.Id }) : null; |
|||
if (temp == null) |
|||
{ |
|||
// 新增
|
|||
entity.SupplierName = (await _supplierService.GetEntity(entity.SupplierId.ToString()))?.Name; |
|||
entity.DriverName = (await _driverService.GetEntity(entity.DriverId.ToString()))?.Name; |
|||
entity.TruckPlate = (await _truckService.GetEntity(entity.TruckId.ToString()))?.LicensePlate; |
|||
|
|||
entity.CreateMan = userAccount; |
|||
entity.CreateTime = DateTime.Now; |
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = entity.CreateTime; |
|||
return await _service.Insert(entity); |
|||
} |
|||
else |
|||
{ |
|||
// 更新
|
|||
if (!string.Equals(temp.DriverId, entity.DriverId)) |
|||
entity.DriverName = (await _driverService.GetEntity(entity.DriverId.ToString()))?.Name; |
|||
if (!string.Equals(temp.TruckId, entity.TruckId)) |
|||
entity.TruckPlate = (await _truckService.GetEntity(entity.TruckId.ToString()))?.LicensePlate; |
|||
|
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = DateTime.Now; |
|||
return await _service.Update(entity); |
|||
} |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,101 @@ |
|||
using cd.dapper.extension; |
|||
using System; |
|||
|
|||
namespace EC.App.AutoWeight.Auth |
|||
{ |
|||
[Table("aw_auth")] |
|||
public class AuthEntity |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// 主键
|
|||
/// AutoInc
|
|||
/// PK
|
|||
/// </summary>
|
|||
[Key] |
|||
public int Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商Id
|
|||
/// </summary>
|
|||
public int? SupplierId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商名称
|
|||
/// </summary>
|
|||
public string SupplierName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运输员Id
|
|||
/// </summary>
|
|||
public int? DriverId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运输员名称
|
|||
/// </summary>
|
|||
public string DriverName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运输车Id
|
|||
/// </summary>
|
|||
public int? TruckId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运输车车牌
|
|||
/// </summary>
|
|||
public string TruckPlate { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 状态
|
|||
/// 1-使用 0-停用
|
|||
/// </summary>
|
|||
public int? IsWork { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建人
|
|||
/// </summary>
|
|||
public string CreateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建时间
|
|||
/// </summary>
|
|||
public DateTime? CreateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新人
|
|||
/// </summary>
|
|||
public string UpdateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新时间
|
|||
/// </summary>
|
|||
public DateTime? UpdateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 备注
|
|||
/// </summary>
|
|||
public string Remark { get; set; } |
|||
|
|||
#endregion Attr
|
|||
|
|||
#region Extend
|
|||
|
|||
/// <summary>
|
|||
/// 上传表格参数是否合法
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public bool IsFormValid() |
|||
{ |
|||
if (SupplierId == null || SupplierId <= 0) |
|||
return false; |
|||
if (DriverId == null || DriverId <= 0) |
|||
return false; |
|||
if (TruckId == null || TruckId <= 0) |
|||
return false; |
|||
return true; |
|||
} |
|||
|
|||
#endregion Extend
|
|||
} |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
using ce.autofac.extension; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Auth |
|||
{ |
|||
public interface AuthIBll : IBLL |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
Task<AuthEntity> GetEntity(string keyValue); |
|||
|
|||
Task<IEnumerable<AuthEntity>> GetList(JObject queryParam); |
|||
|
|||
Task<IEnumerable<AuthEntity>> GetPageList(Pagination pagination, JObject queryParam); |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
Task<int> Delete(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_driver实体数据</param>
|
|||
/// <returns></returns>
|
|||
Task<int> SaveEntity(string keyValue, AuthEntity entity); |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,119 @@ |
|||
using Dapper; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Auth |
|||
{ |
|||
public class AuthService : ServiceBase |
|||
{ |
|||
private readonly string _fieldSql; |
|||
|
|||
public AuthService() |
|||
{ |
|||
_fieldSql = @"t.Id,
|
|||
t.SupplierId, t.SupplierName, |
|||
t.DriverId, t.DriverName, t.TruckId, t.TruckPlate, |
|||
t.IsWork, t.Remark, |
|||
t.CreateMan, t.CreateTime, t.UpdateMan, t.UpdateTime";
|
|||
} |
|||
|
|||
#region 获取数据
|
|||
|
|||
public Task<AuthEntity> GetEntity(string keyValue) |
|||
{ |
|||
return BaseRepository().FindEntityByKey<AuthEntity>(keyValue); |
|||
} |
|||
|
|||
public Task<AuthEntity> GetEntity(object param) |
|||
{ |
|||
return BaseRepository().FindEntity<AuthEntity>(param); |
|||
} |
|||
|
|||
public Task<IEnumerable<AuthEntity>> GetList(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_auth t WHERE 1=1"); |
|||
|
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append(" AND SupplierId = @SupplierId"); |
|||
// 关键字
|
|||
if (!queryParam["DriverName"].IsEmpty()) |
|||
{ |
|||
dp.Add("DriverName", $"%{queryParam["DriverName"]}%", DbType.String); |
|||
strSql.Append(" AND (DriverName like @DriverName)"); |
|||
} |
|||
if (!queryParam["TruckPlate"].IsEmpty()) |
|||
{ |
|||
dp.Add("TruckPlate", $"%{queryParam["TruckPlate"]}%", DbType.String); |
|||
strSql.Append(" AND (TruckPlate like @TruckPlate)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<AuthEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
public Task<IEnumerable<AuthEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_auth t WHERE 1=1"); |
|||
|
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append(" AND SupplierId = @SupplierId"); |
|||
// 关键字
|
|||
if (!queryParam["Keyword"].IsEmpty()) |
|||
{ |
|||
dp.Add("Keyword", $"%{queryParam["Keyword"]}%", DbType.String); |
|||
strSql.Append(" AND (DriverName like @Keyword || TruckPlate like @Keyword)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
//if (!queryParam["Key"].IsEmpty() && !queryParam["Keyword"].IsEmpty())
|
|||
//{
|
|||
// dp.Add("endTime", queryParam["Key"], DbType.String);
|
|||
// dp.Add("keyword", $"%{queryParam["Keyword"]}%", DbType.String);
|
|||
// strSql.Append(" AND (@Key like @keyword)");
|
|||
//}
|
|||
|
|||
return BaseRepository().FindList<AuthEntity>(strSql.ToString(), dp, pagination); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await BaseRepository().DeleteAny<AuthEntity>(new { Id = keyValue }); |
|||
} |
|||
|
|||
public async Task<int> Insert(AuthEntity entity) |
|||
{ |
|||
return await BaseRepository().Insert(entity); |
|||
} |
|||
|
|||
public async Task<int> Update(AuthEntity entity) |
|||
{ |
|||
return await BaseRepository().Update(entity); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,136 @@ |
|||
using ce.autofac.extension; |
|||
using EC.App.AutoWeight.Supplier; |
|||
using learun.application; |
|||
using learun.util; |
|||
using Newtonsoft.Json.Linq; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Driver |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:47:57
|
|||
/// 描 述: 驾驶员 aw_driver
|
|||
/// </summary>
|
|||
public class DriverBll : BLLBase, DriverIBll, BLL |
|||
{ |
|||
private readonly DriverService _driverService = new DriverService(); |
|||
private readonly SupplierService _supplierService = new SupplierService(); |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<DriverEntity> GetEntity(string keyValue) |
|||
{ |
|||
return _driverService.GetEntity(keyValue); |
|||
} |
|||
|
|||
public async Task<IEnumerable<DriverEntity>> GetList() |
|||
{ |
|||
var list = await _driverService.GetList(); |
|||
return list; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<DriverEntity>> GetList(string queryJson) |
|||
{ |
|||
return _driverService.GetList(queryJson); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<DriverEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
return _driverService.GetPageList(pagination, queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TreeModel>> GetTree(int? supplierId) |
|||
{ |
|||
var list = (supplierId != null) ? await _driverService.GetListByKey("supplierId", supplierId.ToString()) : await GetList(); |
|||
var treeList = new List<TreeModel>(); |
|||
foreach (var item in list) |
|||
{ |
|||
var idCard = !string.IsNullOrEmpty(item.IdCard) && item.IdCard.Length >= 6 ? "****"+item.IdCard.Substring(item.IdCard.Length - 6, 6) : string.Empty; |
|||
var node = new TreeModel |
|||
{ |
|||
id = item.Id.ToString(), |
|||
text = $"{item.SupplierName} - {item.Name}({idCard})", |
|||
icon = "fa fa-reorder", |
|||
showcheck = false, |
|||
checkstate = 0, |
|||
isexpand = false, |
|||
parentId = "0" |
|||
}; |
|||
treeList.Add(node); |
|||
} |
|||
return treeList.ToTree(); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await _driverService.Delete(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_driver实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> SaveEntity(string keyValue, DriverEntity entity) |
|||
{ |
|||
var userAccount = GetUserAccount(); |
|||
if (entity == null) |
|||
return -1; |
|||
|
|||
if (!entity.IsFormValid()) |
|||
return -1; |
|||
|
|||
var temp = entity.Id > 0 ? await _driverService.GetEntity(new { Id = entity.Id }) : null; |
|||
if (temp == null) |
|||
{ |
|||
// 新增
|
|||
entity.SupplierName = (await _supplierService.GetEntity(entity.SupplierId.ToString()))?.Name; |
|||
|
|||
entity.CreateMan = userAccount; |
|||
entity.CreateTime = DateTime.Now; |
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = entity.CreateTime; |
|||
return await _driverService.Insert(entity); |
|||
} |
|||
else |
|||
{ |
|||
// 更新
|
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = DateTime.Now; |
|||
return await _driverService.Update(entity); |
|||
} |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,128 @@ |
|||
using cd.dapper.extension; |
|||
using System; |
|||
|
|||
namespace EC.App.AutoWeight.Driver |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:47:57
|
|||
/// 描 述: aw_driver表的实体
|
|||
/// </summary>
|
|||
[Table("aw_driver")] |
|||
public class DriverEntity |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// 主键
|
|||
/// AutoInc
|
|||
/// PK
|
|||
/// </summary>
|
|||
[Key] |
|||
public int Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商Id
|
|||
/// </summary>
|
|||
public int? SupplierId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商名称
|
|||
/// </summary>
|
|||
public string SupplierName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 姓名
|
|||
/// </summary>
|
|||
public string Name { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 身份证号
|
|||
/// </summary>
|
|||
public string IdCard { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 手机
|
|||
/// </summary>
|
|||
public string Telephone { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 头像
|
|||
/// </summary>
|
|||
public string Picture { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 指纹1
|
|||
/// </summary>
|
|||
public string Finger1 { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 指纹2
|
|||
/// </summary>
|
|||
public string Finger2 { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 类型
|
|||
/// 0-司机 1-其他
|
|||
/// </summary>
|
|||
public int? Type { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 状态
|
|||
/// 1-使用 0-停用
|
|||
/// </summary>
|
|||
public int? IsWork { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建人
|
|||
/// </summary>
|
|||
public string CreateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建时间
|
|||
/// </summary>
|
|||
public DateTime? CreateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新人
|
|||
/// </summary>
|
|||
public string UpdateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新时间
|
|||
/// </summary>
|
|||
public DateTime? UpdateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 备注
|
|||
/// </summary>
|
|||
public string Remark { get; set; } |
|||
|
|||
#endregion Attr
|
|||
|
|||
#region Extend
|
|||
|
|||
/// <summary>
|
|||
/// 上传表格参数是否合法
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public bool IsFormValid() |
|||
{ |
|||
if (SupplierId == null || SupplierId <= 0) |
|||
return false; |
|||
if (string.IsNullOrEmpty(Name)) |
|||
return false; |
|||
if (Type == null) |
|||
return false; |
|||
if (string.IsNullOrEmpty(Finger1)) |
|||
return false; |
|||
if (string.IsNullOrEmpty(Finger2)) |
|||
return false; |
|||
return true; |
|||
} |
|||
|
|||
#endregion Extend
|
|||
} |
|||
} |
|||
@ -0,0 +1,70 @@ |
|||
using ce.autofac.extension; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Driver |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:47:57
|
|||
/// 描 述: 驾驶员 aw_driver
|
|||
/// </summary>
|
|||
public interface DriverIBll : IBLL |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
Task<DriverEntity> GetEntity(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的所有列表数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<DriverEntity>> GetList(); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<DriverEntity>> GetList(string queryJson); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<DriverEntity>> GetPageList(Pagination pagination, JObject queryParam); |
|||
|
|||
Task<IEnumerable<TreeModel>> GetTree(int? supplierId); |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
Task<int> Delete(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_driver实体数据</param>
|
|||
/// <returns></returns>
|
|||
Task<int> SaveEntity(string keyValue, DriverEntity entity); |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,171 @@ |
|||
using Dapper; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Driver |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:47:57
|
|||
/// 描 述: 驾驶员 aw_driver
|
|||
/// </summary>
|
|||
public class DriverService : ServiceBase |
|||
{ |
|||
private readonly string _fieldSql; |
|||
|
|||
public DriverService() |
|||
{ |
|||
_fieldSql = @"t.Id,
|
|||
t.SupplierId, t.SupplierName, |
|||
t.Name, t.IdCard, t.Telephone, t.Type, |
|||
t.Picture, t.Finger1, t.Finger2, |
|||
t.IsWork, t.Remark, |
|||
t.CreateMan, t.CreateTime, t.UpdateMan, t.UpdateTime";
|
|||
} |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<DriverEntity> GetEntity(string keyValue) |
|||
{ |
|||
return BaseRepository().FindEntityByKey<DriverEntity>(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的实体
|
|||
/// </summary>
|
|||
/// <param name="param">参数</param>
|
|||
/// <returns></returns>
|
|||
public Task<DriverEntity> GetEntity(object param) |
|||
{ |
|||
return BaseRepository().FindEntity<DriverEntity>(param); |
|||
} |
|||
|
|||
public Task<IEnumerable<DriverEntity>> GetList() |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_driver t WHERE 1=1"); |
|||
return BaseRepository().FindList<DriverEntity>(strSql.ToString()); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<DriverEntity>> GetList(string queryJson) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var dp = new DynamicParameters(new { }); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_driver t WHERE 1=1"); |
|||
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append(" AND SupplierId = @SupplierId"); |
|||
} |
|||
// 关键字
|
|||
if (!queryParam["Name"].IsEmpty()) |
|||
{ |
|||
dp.Add("Name", $"%{queryParam["Name"]}%", DbType.String); |
|||
strSql.Append(" AND (Name like @Name)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<DriverEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
public Task<IEnumerable<DriverEntity>> GetListByKey(string key, string value, int type = 0) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var ver = type == 0 ? "=" : "like"; |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_driver t WHERE 1=1"); |
|||
strSql.Append($" AND {key} {ver} '{value}'"); |
|||
return BaseRepository().FindList<DriverEntity>(strSql.ToString()); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<DriverEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_driver t WHERE 1=1"); |
|||
|
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append(" AND SupplierId = @SupplierId"); |
|||
// 关键字
|
|||
if (!queryParam["Keyword"].IsEmpty()) |
|||
{ |
|||
dp.Add("Keyword", $"%{queryParam["Keyword"]}%", DbType.String); |
|||
strSql.Append(" AND (Name like @Keyword || IdCard like @Keyword)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<DriverEntity>(strSql.ToString(), dp, pagination); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await BaseRepository().DeleteAny<DriverEntity>(new { Id = keyValue }); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_driver实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Insert(DriverEntity entity) |
|||
{ |
|||
return await BaseRepository().Insert(entity); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_driver实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Update(DriverEntity entity) |
|||
{ |
|||
return await BaseRepository().Update(entity); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,99 @@ |
|||
using ce.autofac.extension; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Ini |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-05 12:05:00
|
|||
/// 描 述: 从基础配置表 base_Ini
|
|||
/// </summary>
|
|||
public class IniBll : BLLBase, IniIBll, BLL |
|||
{ |
|||
private readonly IniService _iniService = new IniService(); |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表base_Ini的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<IniEntity> GetEntity(string keyValue) |
|||
{ |
|||
return _iniService.GetEntity(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表base_Ini的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<IniEntity>> GetList(string queryJson) |
|||
{ |
|||
return _iniService.GetList(queryJson); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表base_Ini的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<IniEntity>> GetPageList(Pagination pagination, string queryJson) |
|||
{ |
|||
return _iniService.GetPageList(pagination, queryJson); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task Delete(string keyValue) |
|||
{ |
|||
await _iniService.Delete(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">base_ini实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> SaveEntity(string keyValue, IniEntity entity) |
|||
{ |
|||
if (entity == null) |
|||
return -1; |
|||
|
|||
if (!entity.IsFormValid()) |
|||
return -1; |
|||
|
|||
var temp = entity.Id > 0 ? await _iniService.GetEntity(new { Id = entity.Id }) : null; |
|||
if (temp == null) |
|||
{ |
|||
// 新增
|
|||
entity.CreateTime = DateTime.Now; |
|||
entity.UpdateTime = entity.CreateTime; |
|||
return await _iniService.Insert(entity); |
|||
} |
|||
else |
|||
{ |
|||
// 更新
|
|||
entity.UpdateTime = DateTime.Now; |
|||
return await _iniService.Update(entity); |
|||
} |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,64 @@ |
|||
using cd.dapper.extension; |
|||
using System; |
|||
|
|||
namespace EC.App.AutoWeight.Ini |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-05 12:05:00
|
|||
/// 描 述: base_Ini表的实体
|
|||
/// </summary>
|
|||
[Table("base_ini")] |
|||
public class IniEntity |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// AutoInc
|
|||
/// PK
|
|||
/// </summary>
|
|||
[Key] |
|||
public int Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 序号
|
|||
/// </summary>
|
|||
public string SerialNumber { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 月计划数量
|
|||
/// </summary>
|
|||
public int? PlanNumber { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运单数量
|
|||
/// </summary>
|
|||
public int? BillNumber { get; set; } |
|||
|
|||
public DateTime? CreateTime { get; set; } |
|||
|
|||
public DateTime? UpdateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 备注
|
|||
/// </summary>
|
|||
public string Remark { get; set; } |
|||
|
|||
#endregion Attr
|
|||
|
|||
#region Extend
|
|||
|
|||
/// <summary>
|
|||
/// 上传表格参数是否合法
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public bool IsFormValid() |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
#endregion Extend
|
|||
} |
|||
} |
|||
@ -0,0 +1,61 @@ |
|||
using ce.autofac.extension; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Ini |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-05 12:05:00
|
|||
/// 描 述: 从基础配置表 base_Ini
|
|||
/// </summary>
|
|||
public interface IniIBll : IBLL |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表base_Ini的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
Task<IniEntity> GetEntity(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表base_Ini的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<IniEntity>> GetList(string queryJson); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表base_Ini的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<IniEntity>> GetPageList(Pagination pagination, string queryJson); |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
Task Delete(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">base_ini实体数据</param>
|
|||
/// <returns></returns>
|
|||
Task<int> SaveEntity(string keyValue, IniEntity entity); |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,199 @@ |
|||
using Dapper; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Ini |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-05 12:05:00
|
|||
/// 描 述: 从基础配置表 base_Ini
|
|||
/// </summary>
|
|||
public class IniService : ServiceBase |
|||
{ |
|||
private readonly string _fieldSql; |
|||
|
|||
public IniService() |
|||
{ |
|||
_fieldSql = @"t.Id, t.SerialNumber, t.PlanNumber, t.BillNumber,
|
|||
t.CreateTime, t.UpdateTime, t.Remark";
|
|||
} |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表base_Ini的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<IniEntity> GetEntity(int keyValue) |
|||
{ |
|||
return BaseRepository().FindEntityByKey<IniEntity>(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的实体
|
|||
/// </summary>
|
|||
/// <param name="param">参数</param>
|
|||
/// <returns></returns>
|
|||
public Task<IniEntity> GetEntity(object param) |
|||
{ |
|||
return BaseRepository().FindEntity<IniEntity>(param); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表base_Ini的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<IniEntity>> GetList(string queryJson) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append($"SELECT {_fieldSql} FROM base_ini t WHERE 1=1"); |
|||
// SerialNumber
|
|||
if (!queryParam["SerialNumber"].IsEmpty()) |
|||
{ |
|||
dp.Add("SerialNumber", $"%{queryParam["SerialNumber"]}%", DbType.String); |
|||
strSql.Append(" AND (SerialNumber like @SerialNumber)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<IniEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表base_Ini的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<IniEntity>> GetPageList(Pagination pagination, string queryJson) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append($"SELECT {_fieldSql} FROM base_ini t WHERE 1=1"); |
|||
// SerialNumber
|
|||
if (!queryParam["Keyword"].IsEmpty()) |
|||
{ |
|||
dp.Add("Keyword", $"%{queryParam["Keyword"]}%", DbType.String); |
|||
strSql.Append(" AND (SerialNumber like @Keyword)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<IniEntity>(strSql.ToString(), dp, pagination); |
|||
} |
|||
|
|||
/// <summary>
|
|||
///
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public async Task<string> NewPlanSerialNumber() |
|||
{ |
|||
var yearMonth = DateTime.Now.ToString("yyyyMM");//SerialNumber
|
|||
var iniEntity = await GetEntity(new { SerialNumber = yearMonth }); |
|||
iniEntity ??= new IniEntity |
|||
{ |
|||
SerialNumber = yearMonth, |
|||
PlanNumber = 0, |
|||
BillNumber = 0, |
|||
CreateTime = DateTime.Now, |
|||
}; |
|||
iniEntity.UpdateTime = DateTime.Now; |
|||
iniEntity.PlanNumber += 1; |
|||
iniEntity.PlanNumber %= 10000; |
|||
|
|||
if (iniEntity.Id > 0) |
|||
await Update(iniEntity); |
|||
else |
|||
await Insert(iniEntity); |
|||
|
|||
return yearMonth + iniEntity.PlanNumber.ToString().PadLeft(4, '0'); |
|||
} |
|||
|
|||
/// <summary>
|
|||
///
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public async Task<string> NewBillSerialNumber() |
|||
{ |
|||
var yearMonth = DateTime.Now.ToString("yyyyMM");//SerialNumber
|
|||
var iniEntity = await GetEntity(new { SerialNumber = yearMonth }); |
|||
iniEntity ??= new IniEntity |
|||
{ |
|||
SerialNumber = yearMonth, |
|||
PlanNumber = 0, |
|||
BillNumber = 0, |
|||
CreateTime = DateTime.Now, |
|||
}; |
|||
iniEntity.UpdateTime = DateTime.Now; |
|||
iniEntity.BillNumber += 1; |
|||
iniEntity.BillNumber %= 10000; |
|||
|
|||
if (iniEntity.Id > 0) |
|||
await Update(iniEntity); |
|||
else |
|||
await Insert(iniEntity); |
|||
|
|||
return yearMonth + iniEntity.BillNumber.ToString().PadLeft(4, '0'); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task Delete(string keyValue) |
|||
{ |
|||
await BaseRepository().DeleteAny<IniEntity>(new { Id = keyValue }); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">base_Ini实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Insert(IniEntity entity) |
|||
{ |
|||
return await BaseRepository().Insert(entity); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">base_Ini实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Update(IniEntity entity) |
|||
{ |
|||
return await BaseRepository().Update(entity); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,160 @@ |
|||
using ce.autofac.extension; |
|||
using EC.App.AutoWeight.Ini; |
|||
using EC.App.AutoWeight.Supplier; |
|||
using EC.App.AutoWeight.TransportBill; |
|||
using EC.App.Model.State; |
|||
using learun.application; |
|||
using learun.util; |
|||
using Newtonsoft.Json.Linq; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.MonthPlan |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:49:48
|
|||
/// 描 述: 月计划 aw_MonthPlan
|
|||
/// </summary>
|
|||
public class MonthPlanBll : BLLBase, MonthPlanIBll, BLL |
|||
{ |
|||
private readonly MonthPlanService _service = new MonthPlanService(); |
|||
private readonly SupplierService _supplierService = new SupplierService(); |
|||
private readonly TransportBillService _transportBillService = new TransportBillService(); |
|||
private readonly IniService _iniService = new IniService(); |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_MonthPlan的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<MonthPlanEntity> GetEntity(string keyValue) |
|||
{ |
|||
return _service.GetEntity(keyValue); |
|||
} |
|||
|
|||
public async Task<IEnumerable<MonthPlanEntity>> GetList() |
|||
{ |
|||
var list = await _service.GetList(); |
|||
return list; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_MonthPlan的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<MonthPlanEntity>> GetList(string queryJson) |
|||
{ |
|||
return _service.GetList(queryJson); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_MonthPlan的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<MonthPlanEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
return _service.GetPageList(pagination, queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TreeModel>> GetTree(string companyId, string supplierId) |
|||
{ |
|||
var list = await _service.GetList(companyId, supplierId); |
|||
var treeList = new List<TreeModel>(); |
|||
foreach (var item in list) |
|||
{ |
|||
var node = new TreeModel |
|||
{ |
|||
id = item.SerialNumber, |
|||
value = item.Id.ToString(), |
|||
text = $"{item.SupplierName} - {item.SerialNumber}({item.MaterialNo})", |
|||
icon = "fa fa-reorder", |
|||
showcheck = false, |
|||
checkstate = 0, |
|||
isexpand = false, |
|||
parentId = "0" |
|||
}; |
|||
treeList.Add(node); |
|||
} |
|||
return treeList.ToTree(); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await _service.Delete(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_MonthPlan实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> SaveEntity(string keyValue, MonthPlanEntity entity) |
|||
{ |
|||
var userAccount = GetUserAccount(); |
|||
if (entity == null) |
|||
return -1; |
|||
|
|||
if (!entity.IsFormValid()) |
|||
return -1; |
|||
|
|||
var temp = entity.Id > 0 ? await _service.GetEntity(new { Id = entity.Id }) : null; |
|||
if (temp == null) |
|||
{ |
|||
// 新增
|
|||
entity.SerialNumber = await _iniService.NewPlanSerialNumber(); |
|||
entity.SupplierName = (await _supplierService.GetEntity(entity.SupplierId.ToString()))?.Name; |
|||
|
|||
entity.CreateMan = userAccount; |
|||
entity.CreateTime = DateTime.Now; |
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = entity.CreateTime; |
|||
return await _service.Insert(entity); |
|||
} |
|||
else |
|||
{ |
|||
// 更新
|
|||
if (!string.Equals(temp.SupplierId, entity.SupplierId)) |
|||
entity.SupplierName = (await _supplierService.GetEntity(entity.SupplierId.ToString()))?.Name; |
|||
|
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = DateTime.Now; |
|||
return await _service.Update(entity); |
|||
} |
|||
} |
|||
|
|||
public async Task ReCountWeight(string keyValue) |
|||
{ |
|||
var temp = !string.IsNullOrEmpty(keyValue) ? await _service.GetEntity(new { Id = keyValue }) : null; |
|||
if (temp == null) |
|||
return; |
|||
temp.ActQty = 0; |
|||
var billList = _transportBillService.GetListByKey("PlanSerialNumber", temp.SerialNumber).Result; |
|||
foreach (var bill in billList) |
|||
{ |
|||
if (bill.State != (int)BillState.OutFinish) continue; |
|||
temp.ActQty += bill.NetWeight; |
|||
} |
|||
await _service.Update(temp); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,109 @@ |
|||
using cd.dapper.extension; |
|||
using System; |
|||
|
|||
namespace EC.App.AutoWeight.MonthPlan |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:49:48
|
|||
/// 描 述: aw_MonthPlan表的实体
|
|||
/// </summary>
|
|||
[Table("aw_MonthPlan")] |
|||
public class MonthPlanEntity |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
///
|
|||
/// AutoInc
|
|||
/// PK
|
|||
/// </summary>
|
|||
[Key] |
|||
public int Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 序号
|
|||
/// </summary>
|
|||
public string SerialNumber { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 公司Id
|
|||
/// </summary>
|
|||
public string CompanyId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商Id
|
|||
/// </summary>
|
|||
public int? SupplierId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商名称
|
|||
/// </summary>
|
|||
public string SupplierName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 料号
|
|||
/// </summary>
|
|||
public string MaterialNo { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 计划数量
|
|||
/// </summary>
|
|||
public decimal? PlanQty { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 实际运到数量
|
|||
/// </summary>
|
|||
public decimal? ActQty { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建人
|
|||
/// </summary>
|
|||
public string CreateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建时间
|
|||
/// </summary>
|
|||
public DateTime? CreateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新人
|
|||
/// </summary>
|
|||
public string UpdateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新时间
|
|||
/// </summary>
|
|||
public DateTime? UpdateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 备注
|
|||
/// </summary>
|
|||
public string Remark { get; set; } |
|||
|
|||
#endregion Attr
|
|||
|
|||
#region Extend
|
|||
|
|||
/// <summary>
|
|||
/// 上传表格参数是否合法
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public bool IsFormValid() |
|||
{ |
|||
if (string.IsNullOrEmpty(CompanyId)) |
|||
return false; |
|||
if (SupplierId == null || SupplierId <= 0) |
|||
return false; |
|||
if (PlanQty == null) |
|||
return false; |
|||
if (ActQty == null) |
|||
return false; |
|||
return true; |
|||
} |
|||
|
|||
#endregion Extend
|
|||
} |
|||
} |
|||
@ -0,0 +1,76 @@ |
|||
using ce.autofac.extension; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.MonthPlan |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:49:48
|
|||
/// 描 述: 月计划 aw_MonthPlan
|
|||
/// </summary>
|
|||
public interface MonthPlanIBll : IBLL |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_MonthPlan的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
Task<MonthPlanEntity> GetEntity(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 列表
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<MonthPlanEntity>> GetList(); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_MonthPlan的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<MonthPlanEntity>> GetList(string queryJson); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_MonthPlan的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<MonthPlanEntity>> GetPageList(Pagination pagination, JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// 获取树形数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TreeModel>> GetTree(string companyId, string supplierId); |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
Task<int> Delete(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_MonthPlan实体数据</param>
|
|||
/// <returns></returns>
|
|||
Task<int> SaveEntity(string keyValue, MonthPlanEntity entity); |
|||
|
|||
Task ReCountWeight(string keyValue); |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,63 @@ |
|||
using System; |
|||
|
|||
namespace EC.App.AutoWeight.MonthPlan |
|||
{ |
|||
public class MonthPlanInfoDto |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// 序号
|
|||
/// </summary>
|
|||
public string SerialNumber { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 公司Id
|
|||
/// </summary>
|
|||
public string CompanyId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商Id
|
|||
/// </summary>
|
|||
public int SupplierId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商名称
|
|||
/// </summary>
|
|||
public string SupplierName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 料号
|
|||
/// </summary>
|
|||
public string MaterialNo { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 计划数量
|
|||
/// </summary>
|
|||
public decimal PlanQty { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 实际运到数量
|
|||
/// </summary>
|
|||
public decimal ActQty { get; set; } |
|||
|
|||
public DateTime? CreateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运单单重合计
|
|||
/// </summary>
|
|||
public decimal BillWeightSum { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运单净重合计
|
|||
/// </summary>
|
|||
public decimal NetWeightSum { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运单数量
|
|||
/// </summary>
|
|||
public int BillCount { get; set; } |
|||
|
|||
#endregion Attr
|
|||
} |
|||
} |
|||
@ -0,0 +1,197 @@ |
|||
using Dapper; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.MonthPlan |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:49:48
|
|||
/// 描 述: 月计划 aw_MonthPlan
|
|||
/// </summary>
|
|||
public class MonthPlanService : ServiceBase |
|||
{ |
|||
private readonly string _fieldSql; |
|||
|
|||
public MonthPlanService() |
|||
{ |
|||
_fieldSql = @"t.Id, t.SerialNumber, t.CompanyId, t.SupplierId, t.SupplierName,
|
|||
t.MaterialNo, t.PlanQty, t.ActQty, |
|||
t.Remark, |
|||
t.CreateMan, t.CreateTime, t.UpdateMan, t.UpdateTime";
|
|||
} |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_MonthPlan的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<MonthPlanEntity> GetEntity(string keyValue) |
|||
{ |
|||
return BaseRepository().FindEntityByKey<MonthPlanEntity>(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_monthPlan的实体
|
|||
/// </summary>
|
|||
/// <param name="param">参数</param>
|
|||
/// <returns></returns>
|
|||
public Task<MonthPlanEntity> GetEntity(object param) |
|||
{ |
|||
return BaseRepository().FindEntity<MonthPlanEntity>(param); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_monthPlan的所有列表数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<MonthPlanEntity>> GetList() |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_monthPlan t WHERE 1=1"); |
|||
return BaseRepository().FindList<MonthPlanEntity>(strSql.ToString()); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_MonthPlan的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<MonthPlanEntity>> GetList(string queryJson) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var dp = new DynamicParameters(new { }); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_monthPlan t WHERE 1=1"); |
|||
|
|||
//
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append(" AND CompanyId = @CompanyId"); |
|||
} |
|||
// SerialNumber
|
|||
if (!queryParam["SupplierName"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierName", $"%{queryParam["SupplierName"]}%", DbType.String); |
|||
strSql.Append(" AND (SupplierName like @SupplierName)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<MonthPlanEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
public Task<IEnumerable<MonthPlanEntity>> GetList(string companyId, string supplierId) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_monthPlan t WHERE 1=1"); |
|||
|
|||
dp.Add("CompanyId", companyId, DbType.String); |
|||
strSql.Append(" AND CompanyId = @CompanyId"); |
|||
// 供应商
|
|||
if (!string.IsNullOrEmpty(supplierId)) |
|||
{ |
|||
dp.Add("SupplierId", supplierId, DbType.String); |
|||
strSql.Append(" AND SupplierId = @SupplierId"); |
|||
} |
|||
return BaseRepository().FindList<MonthPlanEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
public Task<IEnumerable<MonthPlanEntity>> GetListByKey(string key, string value, int type = 0) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var ver = type == 0 ? "=" : "like"; |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_monthPlan t WHERE 1=1"); |
|||
strSql.Append($" AND {key} {ver} '{value}'"); |
|||
return BaseRepository().FindList<MonthPlanEntity>(strSql.ToString()); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_MonthPlan的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<MonthPlanEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_monthPlan t WHERE 1=1"); |
|||
|
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append(" AND CompanyId = @CompanyId"); |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append(" AND SupplierId = @SupplierId"); |
|||
} |
|||
// SerialNumber
|
|||
if (!queryParam["Keyword"].IsEmpty()) |
|||
{ |
|||
dp.Add("Keyword", $"%{queryParam["Keyword"]}%", DbType.String); |
|||
strSql.Append(" AND (SerialNumber like @Keyword || SupplierName like @Keyword)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<MonthPlanEntity>(strSql.ToString(), dp, pagination); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await BaseRepository().DeleteAny<MonthPlanEntity>(new { id = keyValue }); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_monthPlan实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Insert(MonthPlanEntity entity) |
|||
{ |
|||
return await BaseRepository().Insert(entity); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_monthPlan实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Update(MonthPlanEntity entity) |
|||
{ |
|||
return await BaseRepository().Update(entity); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,90 @@ |
|||
using ce.autofac.extension; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Photo |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-05 12:03:48
|
|||
/// 描 述: 照片表 aw_photo
|
|||
/// </summary>
|
|||
public class PhotoBll : BLLBase, PhotoIBll, BLL |
|||
{ |
|||
private readonly PhotoService _photoService = new PhotoService(); |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<PhotoEntity>> GetList(string queryJson) |
|||
{ |
|||
return _photoService.GetList(queryJson); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<PhotoEntity>> GetPageList(Pagination pagination, string queryJson) |
|||
{ |
|||
return _photoService.GetPageList(pagination, queryJson); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<PhotoEntity> GetEntity(string keyValue) |
|||
{ |
|||
return _photoService.GetEntity(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的实体
|
|||
/// </summary>
|
|||
/// <param name="param">参数</param>
|
|||
/// <returns></returns>
|
|||
public Task<PhotoEntity> GetEntity(object param) |
|||
{ |
|||
return _photoService.GetEntity(param); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task Delete(string keyValue) |
|||
{ |
|||
await _photoService.Delete(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="photoEntity">aw_photo实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<string> SaveEntity(string keyValue, PhotoEntity photoEntity) |
|||
{ |
|||
var operatorName = GetUserAccount(); |
|||
return await _photoService.SaveEntity(keyValue, photoEntity); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,62 @@ |
|||
using cd.dapper.extension; |
|||
using System; |
|||
|
|||
namespace EC.App.AutoWeight.Photo |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-05 12:03:48
|
|||
/// 描 述: aw_photo表的实体
|
|||
/// </summary>
|
|||
[Table("aw_photo")] |
|||
public class PhotoEntity |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// Id
|
|||
/// AutoInc
|
|||
/// PK
|
|||
/// </summary>
|
|||
[Key] |
|||
public int Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 类型
|
|||
/// 0-头像 1-入场照片 2-出场照片 3-签字照片
|
|||
/// </summary>
|
|||
public int? Type { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 路径
|
|||
/// </summary>
|
|||
public string Path { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建时间
|
|||
/// </summary>
|
|||
public DateTime? CreateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 备注
|
|||
/// </summary>
|
|||
public string Remark { get; set; } |
|||
|
|||
#endregion Attr
|
|||
|
|||
#region Extend
|
|||
|
|||
/// <summary>
|
|||
/// 上传表格参数是否合法
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public bool IsFormValid() |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
#endregion Extend
|
|||
} |
|||
} |
|||
@ -0,0 +1,68 @@ |
|||
using ce.autofac.extension; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Photo |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-05 12:03:48
|
|||
/// 描 述: 照片表 aw_photo
|
|||
/// </summary>
|
|||
public interface PhotoIBll : IBLL |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<PhotoEntity>> GetList(string queryJson); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<PhotoEntity>> GetPageList(Pagination pagination, string queryJson); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
Task<PhotoEntity> GetEntity(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的实体
|
|||
/// </summary>
|
|||
/// <param name="param">参数</param>
|
|||
/// <returns></returns>
|
|||
Task<PhotoEntity> GetEntity(object param); |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
Task Delete(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="photoEntity">aw_photo实体数据</param>
|
|||
/// <returns></returns>
|
|||
Task<string> SaveEntity(string keyValue, PhotoEntity photoEntity); |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,161 @@ |
|||
using Dapper; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Photo |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-05 12:03:48
|
|||
/// 描 述: 照片表 aw_photo
|
|||
/// </summary>
|
|||
public class PhotoService : ServiceBase |
|||
{ |
|||
private readonly string _fieldSql; |
|||
|
|||
public PhotoService() |
|||
{ |
|||
_fieldSql = @"t.Id, t.SerialNumber, t.Type, t.Path,
|
|||
t.Remark";
|
|||
} |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<PhotoEntity> GetEntity(string keyValue) |
|||
{ |
|||
return BaseRepository().FindEntityByKey<PhotoEntity>(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的实体
|
|||
/// </summary>
|
|||
/// <param name="param">参数</param>
|
|||
/// <returns></returns>
|
|||
public Task<PhotoEntity> GetEntity(object param) |
|||
{ |
|||
return BaseRepository().FindEntity<PhotoEntity>(param); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<PhotoEntity>> GetList(string queryJson) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_photo t WHERE 1=1"); |
|||
// SerialNumber
|
|||
if (!queryParam["SerialNumber"].IsEmpty()) |
|||
{ |
|||
dp.Add("SerialNumber", $"%{queryParam["SerialNumber"]}%", DbType.String); |
|||
strSql.Append(" AND t.SerialNumber like @SerialNumber "); |
|||
} |
|||
// Type
|
|||
if (!queryParam["Type"].IsEmpty()) |
|||
{ |
|||
dp.Add("Type", queryParam["Type"].ToInt(), DbType.Int32); |
|||
strSql.Append(" AND t.Type = @Type "); |
|||
} |
|||
|
|||
return BaseRepository().FindList<PhotoEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_photo的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<PhotoEntity>> GetPageList(Pagination pagination, string queryJson) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_photo t WHERE 1=1"); |
|||
// SerialNumber
|
|||
if (!queryParam["Keyword"].IsEmpty()) |
|||
{ |
|||
dp.Add("keyword", $"%{queryParam["Keyword"]}%", DbType.String); |
|||
strSql.Append(" AND t.SerialNumber like @Keyword "); |
|||
} |
|||
// Type
|
|||
if (!queryParam["Type"].IsEmpty()) |
|||
{ |
|||
dp.Add("Type", queryParam["Type"].ToInt(), DbType.Int32); |
|||
strSql.Append(" AND t.Type = @Type "); |
|||
} |
|||
|
|||
return BaseRepository().FindList<PhotoEntity>(strSql.ToString(), dp, pagination); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task Delete(string keyValue) |
|||
{ |
|||
await BaseRepository().DeleteAny<PhotoEntity>(new { SerialNumber = keyValue }); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_photo实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Insert(PhotoEntity entity) |
|||
{ |
|||
return await BaseRepository().Insert(entity); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_photo实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Update(PhotoEntity entity) |
|||
{ |
|||
return await BaseRepository().Update(entity); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="photoEntity">aw_photo实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<string> SaveEntity(string keyValue, PhotoEntity photoEntity) |
|||
{ |
|||
if (string.IsNullOrEmpty(keyValue)) |
|||
{ |
|||
await BaseRepository().Insert(photoEntity); |
|||
} |
|||
else |
|||
{ |
|||
await BaseRepository().Update(photoEntity); |
|||
} |
|||
return photoEntity.Id.ToString(); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,45 @@ |
|||
namespace EC.App.AutoWeight.Report |
|||
{ |
|||
public class DayStatisticsDto |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// 公司ID
|
|||
/// </summary>
|
|||
public string CompanyId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商名
|
|||
/// </summary>
|
|||
public string SupplierName { get; set; } |
|||
|
|||
public int Year { get; set; } |
|||
|
|||
public int Month { get; set; } |
|||
|
|||
public int Day { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运单数量
|
|||
/// </summary>
|
|||
public int BillCount { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运单单重合计
|
|||
/// </summary>
|
|||
public decimal BillWeightSum { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运单净重合计
|
|||
/// </summary>
|
|||
public decimal NetWeightSum { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 重量差额合计
|
|||
/// </summary>
|
|||
public decimal DiffWeightSum { get; set; } |
|||
|
|||
#endregion Attr
|
|||
} |
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
namespace EC.App.AutoWeight.Report |
|||
{ |
|||
public class MonthStatisticsDto |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// 公司ID
|
|||
/// </summary>
|
|||
public string CompanyId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商名
|
|||
/// </summary>
|
|||
public string SupplierName { get; set; } |
|||
|
|||
public int Year { get; set; } |
|||
|
|||
public int Month { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运单数量
|
|||
/// </summary>
|
|||
public int BillCount { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运单单重合计
|
|||
/// </summary>
|
|||
public decimal BillWeightSum { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运单净重合计
|
|||
/// </summary>
|
|||
public decimal NetWeightSum { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 重量差额合计
|
|||
/// </summary>
|
|||
public decimal DiffWeightSum { get; set; } |
|||
|
|||
#endregion Attr
|
|||
} |
|||
} |
|||
@ -0,0 +1,75 @@ |
|||
using ce.autofac.extension; |
|||
using EC.App.AutoWeight.MonthPlan; |
|||
using EC.App.AutoWeight.Supplier; |
|||
using EC.App.AutoWeight.TransportBill; |
|||
using learun.application; |
|||
using Newtonsoft.Json.Linq; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Report |
|||
{ |
|||
public class ReportBll : BLLBase, ReportIBll, BLL |
|||
{ |
|||
private readonly ReportService _service = new ReportService(); |
|||
|
|||
#region 获取数据
|
|||
|
|||
public async Task<IEnumerable<SupplierEntity>> GetBillSupplierList(JObject queryParam) |
|||
{ |
|||
return await _service.GetBillSupplierList(queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<MonthPlanEntity>> GetMonthPlanList(JObject queryParam) |
|||
{ |
|||
return await _service.GetMonthPlanList(queryParam); |
|||
} |
|||
|
|||
public async Task<MonthPlanInfoDto> GetMonthPlanInfo(JObject queryParam) |
|||
{ |
|||
return await _service.GetMonthPlanInfo(queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TransportBillEntity>> GetStatisticsBillListByDay(JObject queryParam) |
|||
{ |
|||
return await _service.GetStatisticsBillListByDay(queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<DayStatisticsDto>> GetStatisticsDataListByMonth(JObject queryParam) |
|||
{ |
|||
return await _service.GetStatisticsBillListByMonth(queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<MonthStatisticsDto>> GetStatisticsDataListByYear(JObject queryParam) |
|||
{ |
|||
return await _service.GetStatisticsBillListByYear(queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TransportBillEntity>> GetBillVolumeListByDay(JObject queryParam) |
|||
{ |
|||
return await _service.GetBillVolumeListByDay(queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TransportBillVolumeDto>> GetBillVolumeDtoListByMonth(JObject queryParam) |
|||
{ |
|||
return await _service.GetBillVolumeDtoListByMonth(queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TransportBillEntity>> GetBillStandardRateListByDay(JObject queryParam) |
|||
{ |
|||
return await _service.GetBillStandardRateListByDay(queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TransportBillEntity>> GetBillStandardRateListByMonth(JObject queryParam) |
|||
{ |
|||
return await _service.GetBillStandardRateListByMonth(queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TransportBillEntity>> GetTruckGradeListByMonth(JObject queryParam) |
|||
{ |
|||
return await _service.GetTruckGradeListByMonth(queryParam); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,73 @@ |
|||
using ce.autofac.extension; |
|||
using EC.App.AutoWeight.MonthPlan; |
|||
using EC.App.AutoWeight.Supplier; |
|||
using EC.App.AutoWeight.TransportBill; |
|||
using Newtonsoft.Json.Linq; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Report |
|||
{ |
|||
public interface ReportIBll : IBLL |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<SupplierEntity>> GetBillSupplierList(JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// </summary>
|
|||
/// <param name="queryParam"></param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<MonthPlanEntity>> GetMonthPlanList(JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<MonthPlanInfoDto> GetMonthPlanInfo(JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TransportBillEntity>> GetStatisticsBillListByDay(JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<DayStatisticsDto>> GetStatisticsDataListByMonth(JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<MonthStatisticsDto>> GetStatisticsDataListByYear(JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TransportBillEntity>> GetBillVolumeListByDay(JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TransportBillVolumeDto>> GetBillVolumeDtoListByMonth(JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TransportBillEntity>> GetBillStandardRateListByDay(JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TransportBillEntity>> GetBillStandardRateListByMonth(JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TransportBillEntity>> GetTruckGradeListByMonth(JObject queryParam); |
|||
|
|||
#endregion 获取数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,480 @@ |
|||
using Dapper; |
|||
using EC.App.AutoWeight.MonthPlan; |
|||
using EC.App.AutoWeight.Supplier; |
|||
using EC.App.AutoWeight.TransportBill; |
|||
using EC.App.Model.State; |
|||
using learun.application; |
|||
using learun.util; |
|||
using Newtonsoft.Json.Linq; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Report |
|||
{ |
|||
public class ReportService : ServiceBase |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// companyId
|
|||
/// </summary>
|
|||
/// <param name="queryParam"></param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<SupplierEntity>> GetBillSupplierList(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append( |
|||
$"SELECT " + |
|||
$"SupplierId as Id, SupplierName as Name " + |
|||
$"FROM aw_transportBill t WHERE 1=1 " |
|||
); |
|||
// CompanyId
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append("AND (CompanyId = @CompanyId) "); |
|||
} |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append("AND (SupplierId = @SupplierId) "); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @startTime AND InStartTime <= @endTime) "); |
|||
} |
|||
strSql.Append("GROUP BY SupplierId "); |
|||
|
|||
return BaseRepository().FindList<SupplierEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// companyId
|
|||
/// </summary>
|
|||
/// <param name="queryParam"></param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<MonthPlanEntity>> GetMonthPlanList(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append( |
|||
$"SELECT " + |
|||
$"* " + |
|||
$"FROM aw_monthPlan t WHERE 1=1 " |
|||
); |
|||
// CompanyId
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append("AND (CompanyId = @CompanyId) "); |
|||
} |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append("AND (SupplierId = @SupplierId) "); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @startTime AND InStartTime <= @endTime) "); |
|||
} |
|||
else |
|||
{ |
|||
dp.Add("Time", DateTime.Now, DbType.DateTime); |
|||
strSql.Append("AND (CreateTime >= @Time) "); |
|||
} |
|||
|
|||
return BaseRepository().FindList<MonthPlanEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,PlanSerialNumber,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryParam"></param>
|
|||
/// <returns></returns>
|
|||
public Task<MonthPlanInfoDto> GetMonthPlanInfo(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append( |
|||
$"SELECT " + |
|||
$"PlanSerialNumber as SerialNumber, CompanyId, SupplierId, SupplierName, MaterialNo, " + |
|||
$"SUM(BillWeight) as BillWeightSum, SUM(NetWeight) as NetWeightSum, COUNT(Id) as BillCount " + |
|||
$"FROM aw_transportBill t WHERE 1=1 " |
|||
); |
|||
// CompanyId
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append("AND (CompanyId = @CompanyId) "); |
|||
} |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append("AND (SupplierId = @SupplierId) "); |
|||
} |
|||
// PlanSerialNumber
|
|||
if (!queryParam["PlanSerialNumber"].IsEmpty()) |
|||
{ |
|||
dp.Add("PlanSerialNumber", queryParam["PlanSerialNumber"], DbType.String); |
|||
strSql.Append("AND (PlanSerialNumber = @PlanSerialNumber) "); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("StartTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("EndTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @StartTime AND InStartTime <= @EndTime) "); |
|||
} |
|||
else |
|||
{ |
|||
dp.Add("Time", DateTime.Now, DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @Time) "); |
|||
} |
|||
strSql.Append("GROUP BY SupplierId, PlanSerialNumber, MaterialNo"); |
|||
|
|||
return BaseRepository().FindEntity<MonthPlanInfoDto>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
public Task<IEnumerable<TransportBillEntity>> GetStatisticsBillListByDay(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append( |
|||
$"SELECT " + |
|||
$"CompanyId,Id,SupplierName,LicensePlate,TrailerPlate,InStartTime,OutStartTime," + |
|||
$"BillWeight,InWeight,OutWeight,NetWeight,DriverName,Driver2Name,State,Remark " + |
|||
$"FROM aw_transportBill WHERE 1=1 " |
|||
); |
|||
// CompanyId
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append("AND (CompanyId = @CompanyId) "); |
|||
} |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append("AND (SupplierId = @SupplierId) "); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @startTime AND InStartTime <= @endTime) "); |
|||
} |
|||
strSql.Append($"AND (State = {(int)BillState.OutFinish}) "); |
|||
|
|||
return BaseRepository().FindList<TransportBillEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
public Task<IEnumerable<DayStatisticsDto>> GetStatisticsBillListByMonth(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append( |
|||
$"SELECT " + |
|||
$"CompanyId,SupplierName,Year(InStartTime) as Year,Month(InStartTime) as Month,Day(InStartTime) as Day," + |
|||
$"Count(Id) as BillCount,Sum(BillWeight) as BillWeightSum,Sum(NetWeight) as NetWeightSum,Sum(NetWeight)-Sum(BillWeight) as DiffWeightSum " + |
|||
$"FROM aw_transportBill WHERE 1=1 " |
|||
); |
|||
// CompanyId
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append("AND (CompanyId = @CompanyId) "); |
|||
} |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append("AND (SupplierId = @SupplierId) "); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @startTime AND InStartTime <= @endTime) "); |
|||
} |
|||
strSql.Append($"AND (State = {(int)BillState.OutFinish}) "); |
|||
strSql.Append(" GROUP BY CompanyId,SupplierId,YEAR(InStartTime),MONTH(InStartTime),DAY(InStartTime) "); |
|||
|
|||
return BaseRepository().FindList<DayStatisticsDto>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
public Task<IEnumerable<MonthStatisticsDto>> GetStatisticsBillListByYear(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append( |
|||
$"SELECT " + |
|||
$"CompanyId,SupplierName,Year(InStartTime) as Year,Month(InStartTime) as Month, " + |
|||
$"Count(Id) as BillCount,Sum(BillWeight) as BillWeightSum,Sum(NetWeight) as NetWeightSum,Sum(NetWeight)-Sum(BillWeight) as DiffWeightSum " + |
|||
$"FROM aw_transportBill WHERE 1=1 " |
|||
); |
|||
// CompanyId
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append("AND (CompanyId = @CompanyId) "); |
|||
} |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append("AND (SupplierId = @SupplierId) "); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @startTime AND InStartTime <= @endTime) "); |
|||
} |
|||
strSql.Append($"AND (State = {(int)BillState.OutFinish}) "); |
|||
strSql.Append(" GROUP BY CompanyId,SupplierId,YEAR(InStartTime),MONTH(InStartTime) "); |
|||
|
|||
return BaseRepository().FindList<MonthStatisticsDto>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryParam"></param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TransportBillEntity>> GetBillVolumeListByDay(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append( |
|||
$"SELECT " + |
|||
$"InStartTime, NetWeight " + |
|||
$"FROM aw_transportBill t WHERE 1=1 " |
|||
); |
|||
// CompanyId
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append("AND (CompanyId = @CompanyId) "); |
|||
} |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append("AND (SupplierId = @SupplierId) "); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @startTime AND InStartTime <= @endTime) "); |
|||
} |
|||
else |
|||
{ |
|||
dp.Add("Time", DateTime.Now, DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @Time) "); |
|||
} |
|||
strSql.Append($"AND (State = {(int)BillState.OutFinish}) "); |
|||
|
|||
return BaseRepository().FindList<TransportBillEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryParam"></param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TransportBillVolumeDto>> GetBillVolumeDtoListByMonth(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append( |
|||
$"SELECT " + |
|||
$"CompanyId, SupplierId, SupplierName, " + |
|||
$"YEAR(InStartTime) as Year, MONTH(InStartTime) as Month, DAY(InStartTime) as Day, " + |
|||
$"SUM(BillWeight) as BillWeightSum, SUM(NetWeight) as NetWeightSum " + |
|||
$"FROM aw_transportBill t WHERE 1=1 " |
|||
); |
|||
// CompanyId
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append("AND (CompanyId = @CompanyId) "); |
|||
} |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append("AND (SupplierId = @SupplierId) "); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @startTime AND InStartTime <= @endTime) "); |
|||
} |
|||
else |
|||
{ |
|||
dp.Add("Time", DateTime.Now, DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @Time) "); |
|||
} |
|||
strSql.Append($"AND (State = {(int)BillState.OutFinish}) "); |
|||
strSql.Append("GROUP BY SupplierId,YEAR(InStartTime),MONTH(InStartTime),DAY(InStartTime) "); |
|||
|
|||
return BaseRepository().FindList<TransportBillVolumeDto>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryParam"></param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TransportBillEntity>> GetBillStandardRateListByDay(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append( |
|||
$"SELECT " + |
|||
$"InStartTime, StandardRate " + |
|||
$"FROM aw_transportBill t WHERE 1=1 " |
|||
); |
|||
//strSql.Append($"SELECT * FROM aw_transportBill t WHERE 1=1");
|
|||
// CompanyId
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append("AND (CompanyId = @CompanyId) "); |
|||
} |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append("AND (SupplierId = @SupplierId) "); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @startTime AND InStartTime <= @endTime) "); |
|||
} |
|||
else |
|||
{ |
|||
dp.Add("Time", DateTime.Now, DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @Time) "); |
|||
} |
|||
strSql.Append($"AND (State = {(int)BillState.OutFinish}) "); |
|||
|
|||
return BaseRepository().FindList<TransportBillEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryParam"></param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TransportBillEntity>> GetBillStandardRateListByMonth(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append( |
|||
$"SELECT " + |
|||
$"InStartTime, StandardRate " + |
|||
$"FROM aw_transportBill t WHERE 1=1" |
|||
); |
|||
//strSql.Append($"SELECT * FROM aw_transportBill t WHERE 1=1 ");
|
|||
// CompanyId
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append("AND (CompanyId = @CompanyId) "); |
|||
} |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append("AND (SupplierId = @SupplierId) "); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @startTime AND InStartTime <= @endTime) "); |
|||
} |
|||
else |
|||
{ |
|||
dp.Add("Time", DateTime.Now, DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @Time) "); |
|||
} |
|||
strSql.Append($"AND (State = {(int)BillState.OutFinish}) "); |
|||
|
|||
return BaseRepository().FindList<TransportBillEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
public Task<IEnumerable<TransportBillEntity>> GetTruckGradeListByMonth(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append( |
|||
$"SELECT " + |
|||
$"CompanyId,Id,SupplierName,LicensePlate,TrailerPlate,InStartTime,OutStartTime, " + |
|||
$"BillWeight,InWeight,OutWeight,NetWeight,DriverName,Driver2Name,State,Remark " + |
|||
$"FROM aw_transportBill WHERE 1=1 " |
|||
); |
|||
// CompanyId
|
|||
if (!queryParam["CompanyId"].IsEmpty()) |
|||
{ |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append("AND (CompanyId = @CompanyId) "); |
|||
} |
|||
// SupplierId
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append("AND (SupplierId = @SupplierId) "); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append("AND (InStartTime >= @startTime AND InStartTime <= @endTime) "); |
|||
} |
|||
strSql.Append($"AND (State = {(int)BillState.OutFinish}) "); |
|||
strSql.Append($"Order By InStartTime,LicensePlate "); |
|||
|
|||
return BaseRepository().FindList<TransportBillEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,119 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using ce.autofac.extension; |
|||
using EC.App.AutoWeight.Auth; |
|||
using learun.application; |
|||
using learun.util; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Site |
|||
{ |
|||
public class SiteBll : BLLBase, SiteIBll, BLL |
|||
{ |
|||
private readonly SiteService _service = new SiteService(); |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<SiteEntity> GetEntity(string keyValue) |
|||
{ |
|||
return _service.GetEntity(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<SiteEntity>> GetList(JObject queryParam) |
|||
{ |
|||
return _service.GetList(queryParam); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<SiteEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
return _service.GetPageList(pagination, queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TreeModel>> GetTree(string companyId) |
|||
{ |
|||
var list = await _service.GetListByKey("CompanyId", companyId); |
|||
var treeList = new List<TreeModel>(); |
|||
foreach (var item in list) |
|||
{ |
|||
var node = new TreeModel |
|||
{ |
|||
id = item.Id.ToString(), |
|||
text = $"{item.Name}", |
|||
icon = "fa fa-reorder", |
|||
showcheck = false, |
|||
checkstate = 0, |
|||
isexpand = false, |
|||
parentId = "0" |
|||
}; |
|||
treeList.Add(node); |
|||
} |
|||
return treeList.ToTree(); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await _service.Delete(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_driver实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> SaveEntity(string keyValue, SiteEntity entity) |
|||
{ |
|||
var userAccount = GetUserAccount(); |
|||
if (entity == null) |
|||
return -1; |
|||
|
|||
if (!entity.IsFormValid()) |
|||
return -1; |
|||
|
|||
var temp = (entity.Id > 0) ? await _service.GetEntity(new { Id = entity.Id }) : null; |
|||
if (temp == null) |
|||
{ |
|||
// 新增
|
|||
entity.CreateMan = userAccount; |
|||
entity.CreateTime = DateTime.Now; |
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = entity.CreateTime; |
|||
return await _service.Insert(entity); |
|||
} |
|||
else |
|||
{ |
|||
// 更新
|
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = DateTime.Now; |
|||
return await _service.Update(entity); |
|||
} |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,75 @@ |
|||
using cd.dapper.extension; |
|||
using System; |
|||
|
|||
namespace EC.App.AutoWeight.Site |
|||
{ |
|||
[Table("aw_site")] |
|||
public class SiteEntity |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// 主键
|
|||
/// AutoInc
|
|||
/// PK
|
|||
/// </summary>
|
|||
[Key] |
|||
public int Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 公司Id
|
|||
/// </summary>
|
|||
public string CompanyId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 名称
|
|||
/// </summary>
|
|||
public string Name { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 状态
|
|||
/// 1-使用 0-停用
|
|||
/// </summary>
|
|||
public int? IsWork { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建人
|
|||
/// </summary>
|
|||
public string CreateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建时间
|
|||
/// </summary>
|
|||
public DateTime? CreateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新人
|
|||
/// </summary>
|
|||
public string UpdateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新时间
|
|||
/// </summary>
|
|||
public DateTime? UpdateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 备注
|
|||
/// </summary>
|
|||
public string Remark { get; set; } |
|||
|
|||
#endregion Attr
|
|||
|
|||
#region Extend
|
|||
|
|||
/// <summary>
|
|||
/// 上传表格参数是否合法
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public bool IsFormValid() |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
#endregion Extend
|
|||
} |
|||
} |
|||
@ -0,0 +1,46 @@ |
|||
using ce.autofac.extension; |
|||
using learun.util; |
|||
using Newtonsoft.Json.Linq; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Site |
|||
{ |
|||
public interface SiteIBll : IBLL |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
Task<SiteEntity> GetEntity(string keyValue); |
|||
|
|||
Task<IEnumerable<SiteEntity>> GetList(JObject queryParam); |
|||
|
|||
Task<IEnumerable<SiteEntity>> GetPageList(Pagination pagination, JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// 获取树形数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TreeModel>> GetTree(string companyId); |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
Task<int> Delete(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_driver实体数据</param>
|
|||
/// <returns></returns>
|
|||
Task<int> SaveEntity(string keyValue, SiteEntity entity); |
|||
|
|||
#endregion 提交数据
|
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,114 @@ |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Dapper; |
|||
using EC.App.AutoWeight.Auth; |
|||
using learun.application; |
|||
using learun.util; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Site |
|||
{ |
|||
public class SiteService : ServiceBase |
|||
{ |
|||
private readonly string _fieldSql; |
|||
|
|||
public SiteService() |
|||
{ |
|||
_fieldSql = @"t.Id, t.CompanyId, t.Name, t.IsWork,
|
|||
t.CreateMan, t.CreateTime, t.UpdateMan, t.UpdateTime, t.Remark";
|
|||
} |
|||
|
|||
#region 获取数据
|
|||
|
|||
public Task<SiteEntity> GetEntity(string keyValue) |
|||
{ |
|||
return BaseRepository().FindEntityByKey<SiteEntity>(keyValue); |
|||
} |
|||
|
|||
public Task<SiteEntity> GetEntity(object param) |
|||
{ |
|||
return BaseRepository().FindEntity<SiteEntity>(param); |
|||
} |
|||
|
|||
public Task<IEnumerable<SiteEntity>> GetList(JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_site t WHERE 1=1"); |
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append(" AND CompanyId = @CompanyId"); |
|||
// 关键字
|
|||
if (!queryParam["Keyword"].IsEmpty()) |
|||
{ |
|||
dp.Add("Keyword", $"%{queryParam["Keyword"]}%", DbType.String); |
|||
strSql.Append(" AND (Name like @Keyword)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<SiteEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
public Task<IEnumerable<SiteEntity>> GetListByKey(string key, string value, int type = 0) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var ver = type == 0 ? "=" : "like"; |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_site t WHERE 1=1"); |
|||
strSql.Append($" AND {key} {ver} '{value}'"); |
|||
return BaseRepository().FindList<SiteEntity>(strSql.ToString()); |
|||
} |
|||
|
|||
public Task<IEnumerable<SiteEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_site t WHERE 1=1"); |
|||
|
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append(" AND CompanyId = @CompanyId"); |
|||
// 关键字
|
|||
if (!queryParam["Keyword"].IsEmpty()) |
|||
{ |
|||
dp.Add("Keyword", $"%{queryParam["Keyword"]}%", DbType.String); |
|||
strSql.Append(" AND (Name like @Keyword)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<SiteEntity>(strSql.ToString(), dp, pagination); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await BaseRepository().DeleteAny<SiteEntity>(new { Id = keyValue }); |
|||
} |
|||
|
|||
public async Task<int> Insert(SiteEntity entity) |
|||
{ |
|||
return await BaseRepository().Insert(entity); |
|||
} |
|||
|
|||
public async Task<int> Update(SiteEntity entity) |
|||
{ |
|||
return await BaseRepository().Update(entity); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,132 @@ |
|||
using ce.autofac.extension; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Supplier |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:49:17
|
|||
/// 描 述: 供应商 aw_supplier
|
|||
/// </summary>
|
|||
public class SupplierBll : BLLBase, SupplierIBll, BLL |
|||
{ |
|||
private readonly SupplierService _supplierService = new SupplierService(); |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的实体
|
|||
/// </summary>
|
|||
/// <
|
|||
/// name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<SupplierEntity> GetEntity(string keyValue) |
|||
{ |
|||
return _supplierService.GetEntity(keyValue); |
|||
} |
|||
|
|||
public Task<IEnumerable<SupplierEntity>> GetList() |
|||
{ |
|||
var list = _supplierService.GetList(); |
|||
return list; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public async Task<IEnumerable<SupplierEntity>> GetList(string queryJson) |
|||
{ |
|||
return await _supplierService.GetList(queryJson); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<SupplierEntity>> GetPageList(Pagination pagination, string queryJson) |
|||
{ |
|||
return _supplierService.GetPageList(pagination, queryJson); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TreeModel>> GetTree() |
|||
{ |
|||
var list = await GetList(); |
|||
var treeList = new List<TreeModel>(); |
|||
|
|||
foreach (var item in list) |
|||
{ |
|||
var node = new TreeModel |
|||
{ |
|||
id = item.Id.ToString(), |
|||
text = item.Name, |
|||
icon = "fa fa-cube", |
|||
showcheck = false, |
|||
checkstate = 0, |
|||
isexpand = false, |
|||
parentId = "0" |
|||
}; |
|||
treeList.Add(node); |
|||
} |
|||
return treeList.ToTree(); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await _supplierService.Delete(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_supplier实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> SaveEntity(string keyValue, SupplierEntity entity) |
|||
{ |
|||
var userAccount = GetUserAccount(); |
|||
if (entity == null) |
|||
return -1; |
|||
|
|||
if (!entity.IsFormValid()) |
|||
return -1; |
|||
|
|||
var temp = entity.Id > 0 ? await _supplierService.GetEntity(new { Id = entity.Id }) : null; |
|||
if (temp == null) |
|||
{ |
|||
// 新增
|
|||
entity.CreateMan = userAccount; |
|||
entity.CreateTime = DateTime.Now; |
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = entity.CreateTime; |
|||
return await _supplierService.Insert(entity); |
|||
} |
|||
else |
|||
{ |
|||
// 更新
|
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = DateTime.Now; |
|||
return await _supplierService.Update(entity); |
|||
} |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,119 @@ |
|||
using cd.dapper.extension; |
|||
using System; |
|||
|
|||
namespace EC.App.AutoWeight.Supplier |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:49:17
|
|||
/// 描 述: aw_supplier表的实体
|
|||
/// </summary>
|
|||
[Table("aw_supplier")] |
|||
public class SupplierEntity |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// 主键
|
|||
/// AutoInc
|
|||
/// PK
|
|||
/// </summary>
|
|||
[Key] |
|||
public int Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 名称
|
|||
/// </summary>
|
|||
public string Name { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 电话
|
|||
/// </summary>
|
|||
public string Manager { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 电话
|
|||
/// </summary>
|
|||
public string FixedPhone { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 手机
|
|||
/// </summary>
|
|||
public string MobilePhone { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 邮箱
|
|||
/// </summary>
|
|||
public string Email { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 省主键
|
|||
/// </summary>
|
|||
public string F_ProvinceId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 市主键
|
|||
/// </summary>
|
|||
public string F_CityId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 县/区主键
|
|||
/// </summary>
|
|||
public string F_CountyId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 地址
|
|||
/// </summary>
|
|||
public string Address { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 是否使用
|
|||
/// </summary>
|
|||
public int? IsWork { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建人
|
|||
/// </summary>
|
|||
public string CreateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建时间
|
|||
/// </summary>
|
|||
public DateTime? CreateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新人
|
|||
/// </summary>
|
|||
public string UpdateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新时间
|
|||
/// </summary>
|
|||
public DateTime? UpdateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 备注
|
|||
/// </summary>
|
|||
public string Remark { get; set; } |
|||
|
|||
#endregion Attr
|
|||
|
|||
#region Extend
|
|||
|
|||
/// <summary>
|
|||
/// 上传表格参数是否合法
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public bool IsFormValid() |
|||
{ |
|||
if (string.IsNullOrEmpty(Name)) |
|||
return false; |
|||
|
|||
return true; |
|||
} |
|||
|
|||
#endregion Extend
|
|||
} |
|||
} |
|||
@ -0,0 +1,74 @@ |
|||
using ce.autofac.extension; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Supplier |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:49:17
|
|||
/// 描 述: 供应商 aw_supplier
|
|||
/// </summary>
|
|||
public interface SupplierIBll : IBLL |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的实体
|
|||
/// </summary>
|
|||
/// <
|
|||
/// name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
Task<SupplierEntity> GetEntity(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 功能列表
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<SupplierEntity>> GetList(); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<SupplierEntity>> GetList(string queryJson); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<SupplierEntity>> GetPageList(Pagination pagination, string queryJson); |
|||
|
|||
/// <summary>
|
|||
/// 获取树形数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TreeModel>> GetTree(); |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
Task<int> Delete(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_supplier实体数据</param>
|
|||
/// <returns></returns>
|
|||
Task<int> SaveEntity(string keyValue, SupplierEntity entity); |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,158 @@ |
|||
using Dapper; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.Supplier |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:49:17
|
|||
/// 描 述: 供应商 aw_supplier
|
|||
/// </summary>
|
|||
public class SupplierService : ServiceBase |
|||
{ |
|||
private readonly string _fieldSql; |
|||
|
|||
public SupplierService() |
|||
{ |
|||
_fieldSql = @"t.Id, t.Name,
|
|||
t.Manager, t.FixedPhone, t.MobilePhone, t.Email, |
|||
t.F_ProvinceId, t.F_CityId, t.F_CountyId, t.Address, |
|||
t.IsWork, t.Remark, |
|||
t.CreateMan, t.CreateTime, t.UpdateMan, t.UpdateTime";
|
|||
} |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<SupplierEntity> GetEntity(string keyValue) |
|||
{ |
|||
return BaseRepository().FindEntityByKey<SupplierEntity>(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的实体
|
|||
/// </summary>
|
|||
/// <param name="param">参数</param>
|
|||
/// <returns></returns>
|
|||
public Task<SupplierEntity> GetEntity(object param) |
|||
{ |
|||
return BaseRepository().FindEntity<SupplierEntity>(param); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的所有列表数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<SupplierEntity>> GetList() |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_supplier t WHERE 1=1"); |
|||
return BaseRepository().FindList<SupplierEntity>(strSql.ToString()); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<SupplierEntity>> GetList(string queryJson) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_supplier t WHERE 1=1"); |
|||
// Name
|
|||
if (!queryParam["Name"].IsEmpty()) |
|||
{ |
|||
dp.Add("Name", $"%{queryParam["Name"]}%", DbType.String); |
|||
strSql.Append(" AND (Name like @Name)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<SupplierEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<SupplierEntity>> GetPageList(Pagination pagination, string queryJson) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_supplier t WHERE 1=1"); |
|||
// 关键字
|
|||
if (!queryParam["Keyword"].IsEmpty()) |
|||
{ |
|||
dp.Add("Keyword", $"%{queryParam["Keyword"]}%", DbType.String); |
|||
strSql.Append(" AND (Name like @Keyword or Manager like @Keyword)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<SupplierEntity>(strSql.ToString(), dp, pagination); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await BaseRepository().DeleteAny<SupplierEntity>(new { Id = keyValue }); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_supplier实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Insert(SupplierEntity entity) |
|||
{ |
|||
return await BaseRepository().Insert(entity); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_supplier实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Update(SupplierEntity entity) |
|||
{ |
|||
return await BaseRepository().Update(entity); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,135 @@ |
|||
using ce.autofac.extension; |
|||
using EC.App.AutoWeight.Supplier; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Trailer |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:31:36
|
|||
/// 描 述: 运单 aw_Trailer
|
|||
/// </summary>
|
|||
public class TrailerBll : BLLBase, TrailerIBll, BLL |
|||
{ |
|||
private readonly TrailerService _TrailerService = new TrailerService(); |
|||
private readonly SupplierService _supplierService = new SupplierService(); |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<TrailerEntity> GetEntity(string keyValue) |
|||
{ |
|||
return _TrailerService.GetEntity(keyValue); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TrailerEntity>> GetList() |
|||
{ |
|||
var list = await _TrailerService.GetList(); |
|||
return list; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TrailerEntity>> GetList(string queryJson) |
|||
{ |
|||
return _TrailerService.GetList(queryJson); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TrailerEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
return _TrailerService.GetPageList(pagination, queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TreeModel>> GetTree(int? supplierId) |
|||
{ |
|||
var list = (supplierId != null) ? await _TrailerService.GetListByKey("supplierId", supplierId.ToString()) : await GetList(); |
|||
var treeList = new List<TreeModel>(); |
|||
foreach (var item in list) |
|||
{ |
|||
var node = new TreeModel |
|||
{ |
|||
id = item.Id.ToString(), |
|||
text = $"{item.SupplierName} - {item.LicensePlate}", |
|||
icon = "fa fa-reorder", |
|||
showcheck = false, |
|||
checkstate = 0, |
|||
isexpand = false, |
|||
parentId = "0" |
|||
}; |
|||
treeList.Add(node); |
|||
} |
|||
return treeList.ToTree(); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await _TrailerService.Delete(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_Trailer实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> SaveEntity(string keyValue, TrailerEntity entity) |
|||
{ |
|||
var userAccount = GetUserAccount(); |
|||
if (entity == null) |
|||
return -1; |
|||
|
|||
if (!entity.IsFormValid()) |
|||
return -1; |
|||
|
|||
var temp = entity.Id > 0 ? await _TrailerService.GetEntity(new { Id = entity.Id }) : null; |
|||
if (temp == null) |
|||
{ |
|||
// 新增
|
|||
entity.SupplierName = (await _supplierService.GetEntity(entity.SupplierId.ToString()))?.Name; |
|||
|
|||
entity.CreateMan = userAccount; |
|||
entity.CreateTime = DateTime.Now; |
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = entity.CreateTime; |
|||
return await _TrailerService.Insert(entity); |
|||
} |
|||
else |
|||
{ |
|||
// 更新
|
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = DateTime.Now; |
|||
return await _TrailerService.Update(entity); |
|||
} |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,90 @@ |
|||
using cd.dapper.extension; |
|||
using System; |
|||
|
|||
namespace EC.App.AutoWeight.Trailer |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:31:36
|
|||
/// 描 述: aw_Trailer 表的实体
|
|||
/// </summary>
|
|||
[Table("aw_Trailer")] |
|||
public class TrailerEntity |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// 主键
|
|||
/// </summary>
|
|||
[Key] |
|||
public int Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 车牌号
|
|||
/// </summary>
|
|||
public string LicensePlate { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商Id
|
|||
/// </summary>
|
|||
public int? SupplierId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商名称
|
|||
/// </summary>
|
|||
public string SupplierName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 状态
|
|||
/// 1-使用 0-停用
|
|||
/// </summary>
|
|||
public int? IsWork { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建人
|
|||
/// </summary>
|
|||
public string CreateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建时间
|
|||
/// </summary>
|
|||
public DateTime? CreateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新人
|
|||
/// </summary>
|
|||
public string UpdateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新时间
|
|||
/// </summary>
|
|||
public DateTime? UpdateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 备注
|
|||
/// </summary>
|
|||
public string Remark { get; set; } |
|||
|
|||
#endregion Attr
|
|||
|
|||
#region Extend
|
|||
|
|||
/// <summary>
|
|||
/// 上传表格参数是否合法
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public bool IsFormValid() |
|||
{ |
|||
if (SupplierId == null || SupplierId <= 0) |
|||
return false; |
|||
if (string.IsNullOrEmpty(LicensePlate)) |
|||
return false; |
|||
|
|||
return true; |
|||
} |
|||
|
|||
#endregion Extend
|
|||
} |
|||
} |
|||
@ -0,0 +1,74 @@ |
|||
using ce.autofac.extension; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Trailer |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:31:36
|
|||
/// 描 述: 运单 aw_Trailer
|
|||
/// </summary>
|
|||
public interface TrailerIBll : IBLL |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
Task<TrailerEntity> GetEntity(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 功能列表
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TrailerEntity>> GetList(); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TrailerEntity>> GetList(string queryJson); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TrailerEntity>> GetPageList(Pagination pagination, JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// 获取树形数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TreeModel>> GetTree(int? supplierId); |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
Task<int> Delete(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_Trailer实体数据</param>
|
|||
/// <returns></returns>
|
|||
Task<int> SaveEntity(string keyValue, TrailerEntity entity); |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,165 @@ |
|||
using Dapper; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Trailer |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:31:36
|
|||
/// 描 述: 运单 aw_Trailer
|
|||
/// </summary>
|
|||
public class TrailerService : ServiceBase |
|||
{ |
|||
private readonly string _fieldSql; |
|||
|
|||
public TrailerService() |
|||
{ |
|||
_fieldSql = @"t.Id,
|
|||
t.SupplierId, t.SupplierName, |
|||
t.LicensePlate, |
|||
t.IsWork, t.Remark, |
|||
t.CreateMan, t.CreateTime, t.UpdateMan, t.UpdateTime";
|
|||
} |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<TrailerEntity> GetEntity(string keyValue) |
|||
{ |
|||
return BaseRepository().FindEntityByKey<TrailerEntity>(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的实体
|
|||
/// </summary>
|
|||
/// <param name="param">参数</param>
|
|||
/// <returns></returns>
|
|||
public Task<TrailerEntity> GetEntity(object param) |
|||
{ |
|||
return BaseRepository().FindEntity<TrailerEntity>(param); |
|||
} |
|||
|
|||
public Task<IEnumerable<TrailerEntity>> GetList() |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_Trailer t WHERE 1=1"); |
|||
return BaseRepository().FindList<TrailerEntity>(strSql.ToString()); |
|||
} |
|||
|
|||
public Task<IEnumerable<TrailerEntity>> GetListByKey(string key, string value, int type = 0) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var ver = type == 0 ? "=" : "like"; |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_Trailer t WHERE 1=1"); |
|||
strSql.Append($" AND {key} {ver} '{value}'"); |
|||
return BaseRepository().FindList<TrailerEntity>(strSql.ToString()); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TrailerEntity>> GetList(string queryJson) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_Trailer t WHERE 1=1"); |
|||
// LicensePlate
|
|||
if (!queryParam["LicensePlate"].IsEmpty()) |
|||
{ |
|||
dp.Add("LicensePlate", $"%{queryParam["LicensePlate"]}%", DbType.String); |
|||
strSql.Append(" AND (LicensePlate like @LicensePlate)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<TrailerEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TrailerEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_Trailer t WHERE 1=1"); |
|||
|
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append(" AND SupplierId = @SupplierId"); |
|||
// 关键字
|
|||
if (!queryParam["Keyword"].IsEmpty()) |
|||
{ |
|||
dp.Add("Keyword", $"%{queryParam["Keyword"]}%", DbType.String); |
|||
strSql.Append(" AND (LicensePlate like @Keyword)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<TrailerEntity>(strSql.ToString(), dp, pagination); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await BaseRepository().DeleteAny<TrailerEntity>(new { Id = keyValue }); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_Trailer实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Insert(TrailerEntity entity) |
|||
{ |
|||
return await BaseRepository().Insert(entity); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_Trailer实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Update(TrailerEntity entity) |
|||
{ |
|||
return await BaseRepository().Update(entity); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,163 @@ |
|||
using ce.autofac.extension; |
|||
using EC.App.AutoWeight.Driver; |
|||
using EC.App.AutoWeight.Ini; |
|||
using EC.App.AutoWeight.MonthPlan; |
|||
using EC.App.AutoWeight.Site; |
|||
using EC.App.AutoWeight.Supplier; |
|||
using EC.App.AutoWeight.Truck; |
|||
using EC.App.AutoWeight.Trailer; |
|||
using learun.application; |
|||
using learun.util; |
|||
using Newtonsoft.Json.Linq; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.TransportBill |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:41:05
|
|||
/// 描 述: 运单录入 aw_transportBill
|
|||
/// </summary>
|
|||
public class TransportBillBll : BLLBase, TransportBillIBll, BLL |
|||
{ |
|||
private readonly TransportBillService _service = new TransportBillService(); |
|||
private readonly SupplierService _supplierService = new SupplierService(); |
|||
private readonly MonthPlanService _monthPlanService = new MonthPlanService(); |
|||
private readonly SiteService _siteService = new SiteService(); |
|||
private readonly TruckService _truckService = new TruckService(); |
|||
private readonly TrailerService _trailerService = new TrailerService(); |
|||
private readonly DriverService _driverService = new DriverService(); |
|||
private readonly IniService _iniService = new IniService(); |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<TransportBillEntity> GetEntity(string keyValue) |
|||
{ |
|||
return _service.GetEntity(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TransportBillEntity>> GetList(string queryJson) |
|||
{ |
|||
return _service.GetList(queryJson); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TransportBillEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
return _service.GetPageList(pagination, queryParam); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await _service.Delete(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_transportBill实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> SaveEntity(string keyValue, TransportBillEntity entity) |
|||
{ |
|||
if (entity == null) |
|||
return -1; |
|||
|
|||
entity.NetWeight = entity.InWeight - entity.OutWeight; |
|||
if (entity.NetWeight != null && entity.BillWeight != null) |
|||
entity.StandardRate = (double?)Math.Round(((decimal)entity.NetWeight / (decimal)entity.BillWeight * 100), 2); |
|||
if (!entity.IsFormValid()) |
|||
return -1; |
|||
|
|||
var oldEntity = entity.Id > 0 ? await _service.GetEntity(new { Id = entity.Id }) : null; |
|||
if (oldEntity == null) |
|||
{ |
|||
// 新增
|
|||
var curPlan = await _monthPlanService.GetEntity(new { SerialNumber = entity.PlanSerialNumber }); |
|||
curPlan.ActQty += entity.NetWeight; |
|||
await _monthPlanService.Update(curPlan); |
|||
|
|||
entity.SerialNumber = _iniService.NewBillSerialNumber().Result; |
|||
entity.SupplierName = (await _supplierService.GetEntity(entity.SupplierId.ToString()))?.Name; |
|||
entity.MaterialNo = (await _monthPlanService.GetEntity(new { SerialNumber = entity.PlanSerialNumber }))?.MaterialNo; |
|||
entity.SiteName = (await _siteService.GetEntity(entity.SiteId.ToString()))?.Name; |
|||
entity.DriverName = (await _driverService.GetEntity(entity.DriverId.ToString()))?.Name; |
|||
entity.Driver2Name = (await _driverService.GetEntity(entity.Driver2Id.ToString()))?.Name; |
|||
entity.LicensePlate = (await _truckService.GetEntity(entity.TruckId.ToString()))?.LicensePlate; |
|||
entity.TrailerPlate = (await _trailerService.GetEntity(entity.TrailerId.ToString()))?.LicensePlate; |
|||
|
|||
entity.InStartTime = DateTime.Now; |
|||
entity.InFinishTime = entity.InStartTime; |
|||
entity.OutStartTime = entity.InStartTime; |
|||
entity.OutFinishTime = entity.InStartTime; |
|||
|
|||
return await _service.Insert(entity); |
|||
} |
|||
else |
|||
{ |
|||
// 更新
|
|||
var oldPlan = await _monthPlanService.GetEntity(new { SerialNumber = oldEntity.PlanSerialNumber }); |
|||
var curPlan = await _monthPlanService.GetEntity(new { SerialNumber = entity.PlanSerialNumber }); |
|||
|
|||
if (!string.Equals(oldEntity.PlanSerialNumber, entity.PlanSerialNumber)) |
|||
entity.MaterialNo = curPlan?.MaterialNo; |
|||
if (!oldEntity.SiteId.Equals(entity.SiteId)) |
|||
entity.SiteName = (await _siteService.GetEntity(entity.SiteId.ToString()))?.Name; |
|||
if (!oldEntity.DriverId.Equals(entity.DriverId)) |
|||
entity.DriverName = (await _driverService.GetEntity(entity.DriverId.ToString()))?.Name; |
|||
if (!oldEntity.Driver2Id.Equals(entity.Driver2Id)) |
|||
entity.Driver2Name = (await _driverService.GetEntity(entity.Driver2Id.ToString()))?.Name; |
|||
if (!oldEntity.TruckId.Equals(entity.TruckId)) |
|||
entity.LicensePlate = (await _truckService.GetEntity(entity.TruckId.ToString()))?.LicensePlate; |
|||
if (!oldEntity.TrailerId.Equals(entity.TrailerId)) |
|||
entity.TrailerPlate = (await _trailerService.GetEntity(entity.TrailerId.ToString()))?.LicensePlate; |
|||
|
|||
if (oldPlan.Id != curPlan.Id) |
|||
{ |
|||
oldPlan.ActQty -= oldEntity.NetWeight; |
|||
await _monthPlanService.Update(oldPlan); |
|||
|
|||
curPlan.ActQty += entity.NetWeight; |
|||
await _monthPlanService.Update(curPlan); |
|||
} |
|||
else |
|||
{ |
|||
curPlan.ActQty -= oldEntity.NetWeight; |
|||
curPlan.ActQty += entity.NetWeight; |
|||
await _monthPlanService.Update(curPlan); |
|||
} |
|||
|
|||
return await _service.Update(entity); |
|||
} |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,215 @@ |
|||
using cd.dapper.extension; |
|||
using System; |
|||
|
|||
namespace EC.App.AutoWeight.TransportBill |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:41:05
|
|||
/// 描 述: aw_transportBill表的实体
|
|||
/// </summary>
|
|||
[Table("aw_transportBill")] |
|||
public class TransportBillEntity |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// 主键
|
|||
/// </summary>
|
|||
[Key] |
|||
public int Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 序号
|
|||
/// </summary>
|
|||
public string SerialNumber { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 公司Id
|
|||
/// </summary>
|
|||
public string CompanyId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商Id
|
|||
/// </summary>
|
|||
public int? SupplierId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商名称
|
|||
/// </summary>
|
|||
public string SupplierName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 月计划序号
|
|||
/// </summary>
|
|||
public string PlanSerialNumber { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 料号
|
|||
/// </summary>
|
|||
public string MaterialNo { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 场地Id
|
|||
/// </summary>
|
|||
public int? SiteId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 场地名称
|
|||
/// </summary>
|
|||
public string SiteName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运输员Id
|
|||
/// </summary>
|
|||
public int? DriverId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运输员名称
|
|||
/// </summary>
|
|||
public string DriverName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 押运员Id
|
|||
/// </summary>
|
|||
public int? Driver2Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 押运员名称
|
|||
/// </summary>
|
|||
public string Driver2Name { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运输车Id
|
|||
/// </summary>
|
|||
public int? TruckId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 车牌号
|
|||
/// </summary>
|
|||
public string LicensePlate { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 挂车Id
|
|||
/// </summary>
|
|||
public int? TrailerId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 挂车牌号
|
|||
/// </summary>
|
|||
public string TrailerPlate { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 运单重量
|
|||
/// </summary>
|
|||
public decimal? BillWeight { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 进入重量
|
|||
/// </summary>
|
|||
public decimal? InWeight { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 离开重量
|
|||
/// </summary>
|
|||
public decimal? OutWeight { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 净重
|
|||
/// </summary>
|
|||
public decimal? NetWeight { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 误差率
|
|||
/// </summary>
|
|||
public double? StandardRate { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 入场照片1
|
|||
/// </summary>
|
|||
public string InPicture1 { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 入场照片2
|
|||
/// </summary>
|
|||
public string InPicture2 { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 出场照片
|
|||
/// </summary>
|
|||
public string OutPicture1 { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 出场照片
|
|||
/// </summary>
|
|||
public string OutPicture2 { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 装车入场开始时间
|
|||
/// </summary>
|
|||
public DateTime? InStartTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 装车入场结束时间
|
|||
/// </summary>
|
|||
public DateTime? InFinishTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 空车出场开始时间
|
|||
/// </summary>
|
|||
public DateTime? OutStartTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 空车出场结束时间
|
|||
/// </summary>
|
|||
public DateTime? OutFinishTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 备注
|
|||
/// </summary>
|
|||
public string Remark { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 状态
|
|||
/// 0-装车入场 1-装车称重 2-空车入场 3-空车称重 4-空车出场
|
|||
/// </summary>
|
|||
public int? State { get; set; } |
|||
|
|||
#endregion Attr
|
|||
|
|||
#region Extend
|
|||
|
|||
/// <summary>
|
|||
/// 上传表格参数是否合法
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public bool IsFormValid() |
|||
{ |
|||
if (string.IsNullOrEmpty(CompanyId)) |
|||
return false; |
|||
if (SupplierId == null || SupplierId < 0) |
|||
return false; |
|||
if (string.IsNullOrEmpty(PlanSerialNumber)) |
|||
return false; |
|||
if (SiteId == null || SiteId < 0) |
|||
return false; |
|||
if (TruckId == null || TruckId < 0) |
|||
return false; |
|||
if (TrailerId == null || TrailerId < 0) |
|||
return false; |
|||
if (BillWeight == null || BillWeight < 0) |
|||
return false; |
|||
if (InWeight == null || InWeight < 0) |
|||
return false; |
|||
if (OutWeight == null || OutWeight < 0) |
|||
return false; |
|||
if (State == null) |
|||
return false; |
|||
return true; |
|||
} |
|||
|
|||
#endregion Extend
|
|||
} |
|||
} |
|||
@ -0,0 +1,62 @@ |
|||
using ce.autofac.extension; |
|||
using learun.util; |
|||
using Newtonsoft.Json.Linq; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.TransportBill |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:41:05
|
|||
/// 描 述: 运单录入 aw_transportBill
|
|||
/// </summary>
|
|||
public interface TransportBillIBll : IBLL |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
Task<TransportBillEntity> GetEntity(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TransportBillEntity>> GetList(string queryJson); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TransportBillEntity>> GetPageList(Pagination pagination, JObject queryParam); |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
Task<int> Delete(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_transportBill实体数据</param>
|
|||
/// <returns></returns>
|
|||
Task<int> SaveEntity(string keyValue, TransportBillEntity entity); |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,183 @@ |
|||
using Dapper; |
|||
using learun.application; |
|||
using learun.util; |
|||
using Newtonsoft.Json.Linq; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.App.AutoWeight.TransportBill |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:41:05
|
|||
/// 描 述: 运单录入 aw_transportBill
|
|||
/// </summary>
|
|||
public class TransportBillService : ServiceBase |
|||
{ |
|||
private readonly string _fieldSql; |
|||
|
|||
public TransportBillService() |
|||
{ |
|||
_fieldSql = @"t.Id, t.SerialNumber,
|
|||
t.CompanyId, t.SupplierId, t.SupplierName, t.PlanSerialNumber, t.MaterialNo, t.SiteId, t.SiteName, |
|||
t.DriverId, t.DriverName, t.Driver2Id, t.Driver2Name, t.TruckId, t.LicensePlate, t.TrailerId, t.TrailerPlate, |
|||
t.BillWeight, t.InWeight, t.OutWeight, t.NetWeight, t.StandardRate, |
|||
t.InPicture1, t.InPicture2, t.OutPicture1, t.OutPicture2, t.SignPicture, |
|||
t.InStartTime, t.InFinishTime, t.OutStartTime, t.OutFinishTime, |
|||
t.State, t.Remark";
|
|||
} |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<TransportBillEntity> GetEntity(string keyValue) |
|||
{ |
|||
return BaseRepository().FindEntityByKey<TransportBillEntity>(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的实体
|
|||
/// </summary>
|
|||
/// <param name="param">参数</param>
|
|||
/// <returns></returns>
|
|||
public Task<TransportBillEntity> GetEntity(object param) |
|||
{ |
|||
return BaseRepository().FindEntity<TransportBillEntity>(param); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TransportBillEntity>> GetList(string queryJson) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_transportBill t WHERE 1=1"); |
|||
// SupplierName
|
|||
if (!queryParam["SerialNumber"].IsEmpty()) |
|||
{ |
|||
dp.Add("SerialNumber", $"%{queryParam["SerialNumber"]}%", DbType.String); |
|||
strSql.Append(" AND (SerialNumber like @SerialNumber)"); |
|||
} |
|||
// LicensePlate
|
|||
if (!queryParam["LicensePlate"].IsEmpty()) |
|||
{ |
|||
dp.Add("LicensePlate", $"%{queryParam["LicensePlate"]}%", DbType.String); |
|||
strSql.Append(" AND (LicensePlate like @LicensePlate)"); |
|||
} |
|||
// PlanSerialNumber
|
|||
if (!queryParam["PlanSerialNumber"].IsEmpty()) |
|||
{ |
|||
dp.Add("PlanSerialNumber", $"%{queryParam["PlanSerialNumber"]}%", DbType.String); |
|||
strSql.Append(" AND (PlanSerialNumber like @PlanSerialNumber)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (InStartTime >= @startTime AND InStartTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<TransportBillEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
public Task<IEnumerable<TransportBillEntity>> GetListByKey(string key, string value, int type = 0) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var ver = type == 0 ? "=" : "like"; |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_transportBill t WHERE 1=1"); |
|||
strSql.Append($" AND {key} {ver} '{value}'"); |
|||
return BaseRepository().FindList<TransportBillEntity>(strSql.ToString()); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TransportBillEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_transportBill t WHERE 1=1"); |
|||
|
|||
dp.Add("CompanyId", queryParam["CompanyId"], DbType.String); |
|||
strSql.Append(" AND CompanyId = @CompanyId"); |
|||
|
|||
if (!queryParam["SupplierId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append(" AND SupplierId = @SupplierId"); |
|||
} |
|||
if (!queryParam["SiteId"].IsEmpty()) |
|||
{ |
|||
dp.Add("SiteId", queryParam["SiteId"], DbType.String); |
|||
strSql.Append(" AND SiteId = @SiteId"); |
|||
} |
|||
// 关键字
|
|||
if (!queryParam["Keyword"].IsEmpty()) |
|||
{ |
|||
dp.Add("Keyword", $"%{queryParam["Keyword"]}%", DbType.String); |
|||
strSql.Append(" AND (SupplierName like @Keyword || PlanSerialNumber like @Keyword || LicensePlate like @Keyword)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (InStartTime >= @startTime AND InStartTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<TransportBillEntity>(strSql.ToString(), dp, pagination); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await BaseRepository().DeleteAny<TransportBillEntity>(new { Id = keyValue }); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_transportBill实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Insert(TransportBillEntity entity) |
|||
{ |
|||
return await BaseRepository().Insert(entity); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_transportBill实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Update(TransportBillEntity entity) |
|||
{ |
|||
return await BaseRepository().Update(entity); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,34 @@ |
|||
namespace EC.App.AutoWeight.TransportBill |
|||
{ |
|||
public class TransportBillVolumeDto |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// 公司Id
|
|||
/// </summary>
|
|||
public string CompanyId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商Id
|
|||
/// </summary>
|
|||
public int SupplierId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 料号
|
|||
/// </summary>
|
|||
public string MaterialNo { get; set; } |
|||
|
|||
public int Year { get; set; } |
|||
|
|||
public int Month { get; set; } |
|||
|
|||
public int Day { get; set; } |
|||
|
|||
public decimal BillWeightSum { get; set; } |
|||
|
|||
public decimal NetWeightSum { get; set; } |
|||
|
|||
#endregion Attr
|
|||
} |
|||
} |
|||
@ -0,0 +1,135 @@ |
|||
using ce.autofac.extension; |
|||
using EC.App.AutoWeight.Supplier; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Truck |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:31:36
|
|||
/// 描 述: 运单 aw_truck
|
|||
/// </summary>
|
|||
public class TruckBll : BLLBase, TruckIBll, BLL |
|||
{ |
|||
private readonly TruckService _truckService = new TruckService(); |
|||
private readonly SupplierService _supplierService = new SupplierService(); |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<TruckEntity> GetEntity(string keyValue) |
|||
{ |
|||
return _truckService.GetEntity(keyValue); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TruckEntity>> GetList() |
|||
{ |
|||
var list = await _truckService.GetList(); |
|||
return list; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TruckEntity>> GetList(string queryJson) |
|||
{ |
|||
return _truckService.GetList(queryJson); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TruckEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
return _truckService.GetPageList(pagination, queryParam); |
|||
} |
|||
|
|||
public async Task<IEnumerable<TreeModel>> GetTree(int? supplierId) |
|||
{ |
|||
var list = (supplierId != null) ? await _truckService.GetListByKey("supplierId", supplierId.ToString()) : await GetList(); |
|||
var treeList = new List<TreeModel>(); |
|||
foreach (var item in list) |
|||
{ |
|||
var node = new TreeModel |
|||
{ |
|||
id = item.Id.ToString(), |
|||
text = $"{item.SupplierName} - {item.LicensePlate}", |
|||
icon = "fa fa-reorder", |
|||
showcheck = false, |
|||
checkstate = 0, |
|||
isexpand = false, |
|||
parentId = "0" |
|||
}; |
|||
treeList.Add(node); |
|||
} |
|||
return treeList.ToTree(); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await _truckService.Delete(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_truck实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> SaveEntity(string keyValue, TruckEntity entity) |
|||
{ |
|||
var userAccount = GetUserAccount(); |
|||
if (entity == null) |
|||
return -1; |
|||
|
|||
if (!entity.IsFormValid()) |
|||
return -1; |
|||
|
|||
var temp = entity.Id > 0 ? await _truckService.GetEntity(new { Id = entity.Id }) : null; |
|||
if (temp == null) |
|||
{ |
|||
// 新增
|
|||
entity.SupplierName = (await _supplierService.GetEntity(entity.SupplierId.ToString()))?.Name; |
|||
|
|||
entity.CreateMan = userAccount; |
|||
entity.CreateTime = DateTime.Now; |
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = entity.CreateTime; |
|||
return await _truckService.Insert(entity); |
|||
} |
|||
else |
|||
{ |
|||
// 更新
|
|||
entity.UpdateMan = userAccount; |
|||
entity.UpdateTime = DateTime.Now; |
|||
return await _truckService.Update(entity); |
|||
} |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,90 @@ |
|||
using cd.dapper.extension; |
|||
using System; |
|||
|
|||
namespace EC.App.AutoWeight.Truck |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:31:36
|
|||
/// 描 述: aw_truck 表的实体
|
|||
/// </summary>
|
|||
[Table("aw_truck")] |
|||
public class TruckEntity |
|||
{ |
|||
#region Attr
|
|||
|
|||
/// <summary>
|
|||
/// 主键
|
|||
/// </summary>
|
|||
[Key] |
|||
public int Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 车牌号
|
|||
/// </summary>
|
|||
public string LicensePlate { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商Id
|
|||
/// </summary>
|
|||
public int? SupplierId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 供应商名称
|
|||
/// </summary>
|
|||
public string SupplierName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 状态
|
|||
/// 1-使用 0-停用
|
|||
/// </summary>
|
|||
public int? IsWork { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建人
|
|||
/// </summary>
|
|||
public string CreateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建时间
|
|||
/// </summary>
|
|||
public DateTime? CreateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新人
|
|||
/// </summary>
|
|||
public string UpdateMan { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 更新时间
|
|||
/// </summary>
|
|||
public DateTime? UpdateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 备注
|
|||
/// </summary>
|
|||
public string Remark { get; set; } |
|||
|
|||
#endregion Attr
|
|||
|
|||
#region Extend
|
|||
|
|||
/// <summary>
|
|||
/// 上传表格参数是否合法
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
public bool IsFormValid() |
|||
{ |
|||
if (SupplierId == null || SupplierId <= 0) |
|||
return false; |
|||
if (string.IsNullOrEmpty(LicensePlate)) |
|||
return false; |
|||
|
|||
return true; |
|||
} |
|||
|
|||
#endregion Extend
|
|||
} |
|||
} |
|||
@ -0,0 +1,74 @@ |
|||
using ce.autofac.extension; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Truck |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:31:36
|
|||
/// 描 述: 运单 aw_truck
|
|||
/// </summary>
|
|||
public interface TruckIBll : IBLL |
|||
{ |
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
Task<TruckEntity> GetEntity(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 功能列表
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TruckEntity>> GetList(); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TruckEntity>> GetList(string queryJson); |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TruckEntity>> GetPageList(Pagination pagination, JObject queryParam); |
|||
|
|||
/// <summary>
|
|||
/// 获取树形数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
Task<IEnumerable<TreeModel>> GetTree(int? supplierId); |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
Task<int> Delete(string keyValue); |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_truck实体数据</param>
|
|||
/// <returns></returns>
|
|||
Task<int> SaveEntity(string keyValue, TruckEntity entity); |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,165 @@ |
|||
using Dapper; |
|||
using learun.application; |
|||
using learun.util; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace EC.App.AutoWeight.Truck |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-06 11:31:36
|
|||
/// 描 述: 运单 aw_truck
|
|||
/// </summary>
|
|||
public class TruckService : ServiceBase |
|||
{ |
|||
private readonly string _fieldSql; |
|||
|
|||
public TruckService() |
|||
{ |
|||
_fieldSql = @"t.Id,
|
|||
t.SupplierId, t.SupplierName, |
|||
t.LicensePlate, |
|||
t.IsWork, t.Remark, |
|||
t.CreateMan, t.CreateTime, t.UpdateMan, t.UpdateTime";
|
|||
} |
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的实体
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
public Task<TruckEntity> GetEntity(string keyValue) |
|||
{ |
|||
return BaseRepository().FindEntityByKey<TruckEntity>(keyValue); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的实体
|
|||
/// </summary>
|
|||
/// <param name="param">参数</param>
|
|||
/// <returns></returns>
|
|||
public Task<TruckEntity> GetEntity(object param) |
|||
{ |
|||
return BaseRepository().FindEntity<TruckEntity>(param); |
|||
} |
|||
|
|||
public Task<IEnumerable<TruckEntity>> GetList() |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_truck t WHERE 1=1"); |
|||
return BaseRepository().FindList<TruckEntity>(strSql.ToString()); |
|||
} |
|||
|
|||
public Task<IEnumerable<TruckEntity>> GetListByKey(string key, string value, int type = 0) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var ver = type == 0 ? "=" : "like"; |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_truck t WHERE 1=1"); |
|||
strSql.Append($" AND {key} {ver} '{value}'"); |
|||
return BaseRepository().FindList<TruckEntity>(strSql.ToString()); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TruckEntity>> GetList(string queryJson) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var dp = new DynamicParameters(new { }); |
|||
|
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_truck t WHERE 1=1"); |
|||
// LicensePlate
|
|||
if (!queryParam["LicensePlate"].IsEmpty()) |
|||
{ |
|||
dp.Add("LicensePlate", $"%{queryParam["LicensePlate"]}%", DbType.String); |
|||
strSql.Append(" AND (LicensePlate like @LicensePlate)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<TruckEntity>(strSql.ToString(), dp); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryParam">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
public Task<IEnumerable<TruckEntity>> GetPageList(Pagination pagination, JObject queryParam) |
|||
{ |
|||
var strSql = new StringBuilder(); |
|||
var dp = new DynamicParameters(new { }); |
|||
strSql.Append($"SELECT {_fieldSql} FROM aw_truck t WHERE 1=1"); |
|||
|
|||
dp.Add("SupplierId", queryParam["SupplierId"], DbType.String); |
|||
strSql.Append(" AND SupplierId = @SupplierId"); |
|||
// 关键字
|
|||
if (!queryParam["Keyword"].IsEmpty()) |
|||
{ |
|||
dp.Add("Keyword", $"%{queryParam["Keyword"]}%", DbType.String); |
|||
strSql.Append(" AND (LicensePlate like @Keyword)"); |
|||
} |
|||
// 操作时间
|
|||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) |
|||
{ |
|||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); |
|||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); |
|||
strSql.Append(" AND (CreateTime >= @startTime AND CreateTime <= @endTime)"); |
|||
} |
|||
|
|||
return BaseRepository().FindList<TruckEntity>(strSql.ToString(), dp, pagination); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主表主键</param>
|
|||
public async Task<int> Delete(string keyValue) |
|||
{ |
|||
return await BaseRepository().DeleteAny<TruckEntity>(new { Id = keyValue }); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_truck实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Insert(TruckEntity entity) |
|||
{ |
|||
return await BaseRepository().Insert(entity); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增
|
|||
/// </summary>
|
|||
/// <param name="entity">aw_truck实体数据</param>
|
|||
/// <returns></returns>
|
|||
public async Task<int> Update(TruckEntity entity) |
|||
{ |
|||
return await BaseRepository().Update(entity); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netstandard2.1</TargetFramework> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<PackageReference Include="cd.dapper.extension" Version="1.0.6" /> |
|||
</ItemGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\..\learun.core\learun.application\learun.application.csproj" /> |
|||
<ProjectReference Include="..\..\learun.core\learun.database\learun.database.csproj" /> |
|||
<ProjectReference Include="..\..\learun.core\learun.iapplication\learun.iapplication.csproj" /> |
|||
<ProjectReference Include="..\..\learun.core\learun.util\learun.util.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -0,0 +1,18 @@ |
|||
namespace EC.App.Model.State |
|||
{ |
|||
/// <summary>
|
|||
/// 运单状态
|
|||
/// InStart(10):进入开始; InWeight(11):进入称重; InFinish(12):进入结束;
|
|||
/// OutStart(20):离开开始; OutWeight(21):离开称重; OutPrint(22):离开打印小票; OutFinish(23):离开结束;
|
|||
/// </summary>
|
|||
public enum BillState |
|||
{ |
|||
InStart = 10, |
|||
InWeight = 11, |
|||
InFinish = 12, |
|||
OutStart = 20, |
|||
OutWeight = 21, |
|||
OutPrint = 22, |
|||
OutFinish = 23 |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
{ |
|||
"version": 1, |
|||
"isRoot": true, |
|||
"tools": { |
|||
"dotnet-ef": { |
|||
"version": "5.0.2", |
|||
"commands": [ |
|||
"dotnet-ef" |
|||
] |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,116 @@ |
|||
using System.Collections.Generic; |
|||
using EC.App.AutoWeight.Auth; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
[Area("AutoWeight")] |
|||
public class AuthController : MvcControllerBase |
|||
{ |
|||
private readonly AuthIBll _bll; |
|||
|
|||
public AuthController(AuthIBll bll) |
|||
{ |
|||
_bll = bll; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetForm(string keyValue) |
|||
{ |
|||
var driverEntity = await _bll.GetEntity(keyValue); |
|||
var jsonData = new |
|||
{ |
|||
driverEntity |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetList(string queryJson) |
|||
{ |
|||
var queryParam = queryJson.ToJObject(); |
|||
var list = (!queryParam["SupplierId"].IsEmpty()) ? await _bll.GetList(queryParam) : new List<AuthEntity>(); |
|||
return Success(list); |
|||
} |
|||
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPageList(string pagination, string queryJson) |
|||
{ |
|||
var pageObj = pagination.ToObject<Pagination>(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var list = (!queryParam["SupplierId"].IsEmpty()) ? await _bll.GetPageList(pageObj, queryParam) : new List<AuthEntity>(); |
|||
var jsonData = new |
|||
{ |
|||
rows = list, |
|||
pageObj.total, |
|||
pageObj.page, |
|||
pageObj.records |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue"></param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> DeleteForm(string keyValue) |
|||
{ |
|||
await _bll.Delete(keyValue); |
|||
return SuccessInfo("删除成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_auth实体数据</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string keyValue, AuthEntity entity) |
|||
{ |
|||
var res = await _bll.SaveEntity(keyValue, entity); |
|||
return Success("保存成功!", res); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,146 @@ |
|||
using System.Collections.Generic; |
|||
using EC.App.AutoWeight.Driver; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:47:57
|
|||
/// 描 述: 驾驶员 aw_driver
|
|||
/// </summary>
|
|||
[Area("AutoWeight")] |
|||
public class DriverController : MvcControllerBase |
|||
{ |
|||
private readonly DriverIBll _bll; |
|||
|
|||
public DriverController(DriverIBll bll) |
|||
{ |
|||
_bll = bll; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetForm(string keyValue) |
|||
{ |
|||
var driverEntity = await _bll.GetEntity(keyValue); |
|||
var jsonData = new |
|||
{ |
|||
driverEntity |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetList(string queryJson) |
|||
{ |
|||
var list = await _bll.GetList(queryJson); |
|||
return Success(list); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_driver的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPageList(string pagination, string queryJson) |
|||
{ |
|||
var pageObj = pagination.ToObject<Pagination>(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var list = (!queryParam["SupplierId"].IsEmpty()) ? await _bll.GetPageList(pageObj, queryParam) : new List<DriverEntity>(); |
|||
var jsonData = new |
|||
{ |
|||
rows = list, |
|||
pageObj.total, |
|||
pageObj.page, |
|||
pageObj.records |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetTree(int? supplierId) |
|||
{ |
|||
var data = await _bll.GetTree(supplierId); |
|||
return this.Success(data); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue"></param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> DeleteForm(string keyValue) |
|||
{ |
|||
await _bll.Delete(keyValue); |
|||
return SuccessInfo("删除成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_driver实体数据</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string keyValue, DriverEntity entity) |
|||
{ |
|||
var res = await _bll.SaveEntity(keyValue, entity); |
|||
return Success("保存成功!", res); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
public class HomeController : Controller |
|||
{ |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,136 @@ |
|||
using EC.App.AutoWeight.Ini; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-05 12:05:00
|
|||
/// 描 述: 从基础配置表 base_Ini
|
|||
/// </summary>
|
|||
[Area("AutoWeight")] |
|||
public class IniController : MvcControllerBase |
|||
{ |
|||
private readonly IniIBll _bll; |
|||
|
|||
public IniController(IniIBll bll) |
|||
{ |
|||
_bll = bll; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetForm(string keyValue) |
|||
{ |
|||
var iniEntity = await _bll.GetEntity(keyValue); |
|||
var jsonData = new |
|||
{ |
|||
iniEntity |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表base_Ini的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetList(string queryJson) |
|||
{ |
|||
var list = await _bll.GetList(queryJson); |
|||
return Success(list); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表base_Ini的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPageList(string pagination, string queryJson) |
|||
{ |
|||
Pagination paginationObj = pagination.ToObject<Pagination>(); |
|||
var list = await _bll.GetPageList(paginationObj, queryJson); |
|||
var jsonData = new |
|||
{ |
|||
rows = list, |
|||
paginationObj.total, |
|||
paginationObj.page, |
|||
paginationObj.records |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue"></param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> DeleteForm(string keyValue) |
|||
{ |
|||
await _bll.Delete(keyValue); |
|||
return SuccessInfo("删除成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">base_Ini实体数据</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string keyValue, IniEntity entity) |
|||
{ |
|||
var res = await _bll.SaveEntity(keyValue, entity); |
|||
return Success("保存成功!", res); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,162 @@ |
|||
using System; |
|||
using EC.App.AutoWeight.MonthPlan; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:49:48
|
|||
/// 描 述: 月计划 aw_MonthPlan
|
|||
/// </summary>
|
|||
[Area("AutoWeight")] |
|||
public class MonthPlanController : MvcControllerBase |
|||
{ |
|||
private readonly MonthPlanIBll _bll; |
|||
|
|||
public MonthPlanController(MonthPlanIBll bll) |
|||
{ |
|||
_bll = bll; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetForm(string keyValue) |
|||
{ |
|||
var monthPlanEntity = await _bll.GetEntity(keyValue); |
|||
var jsonData = new |
|||
{ |
|||
aw_MonthPlan = monthPlanEntity |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_MonthPlan的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetList(string queryJson) |
|||
{ |
|||
var list = await _bll.GetList(queryJson); |
|||
return Success(list); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_MonthPlan的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPageList(string pagination, string queryJson) |
|||
{ |
|||
var pageObj = pagination.ToObject<Pagination>(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
if (queryParam["CompanyId"].IsEmpty()) |
|||
queryParam["CompanyId"] = CurrentUser().Result.F_CompanyId; |
|||
var list = await _bll.GetPageList(pageObj, queryParam); |
|||
var jsonData = new |
|||
{ |
|||
rows = list, |
|||
pageObj.total, |
|||
pageObj.page, |
|||
pageObj.records |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取树形数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetTree(string companyId, string supplierId) |
|||
{ |
|||
if (companyId == null) throw new ArgumentNullException(nameof(companyId)); |
|||
var data = await _bll.GetTree(companyId, supplierId); |
|||
return this.Success(data); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue"></param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> DeleteForm(string keyValue) |
|||
{ |
|||
await _bll.Delete(keyValue); |
|||
return SuccessInfo("删除成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_MonthPlan实体数据</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string keyValue, MonthPlanEntity entity) |
|||
{ |
|||
var res = await _bll.SaveEntity(keyValue, entity); |
|||
return Success("保存成功!", res); |
|||
} |
|||
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> ReCountWeight(string keyValue) |
|||
{ |
|||
if (keyValue == null) throw new ArgumentNullException(nameof(keyValue)); |
|||
await _bll.ReCountWeight(keyValue); |
|||
return SuccessInfo("更新成功!"); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,161 @@ |
|||
using EC.App.AutoWeight.Photo; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-05 12:03:48
|
|||
/// 描 述: 照片表 aw_photo
|
|||
/// </summary>
|
|||
[Area("AutoWeight")] |
|||
public class PhotoController : MvcControllerBase |
|||
{ |
|||
private readonly PhotoIBll _bll; |
|||
|
|||
public PhotoController(PhotoIBll bll) |
|||
{ |
|||
_bll = bll; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
///// <summary>
|
|||
///// 视图
|
|||
///// </summary>
|
|||
///// <returns></returns>
|
|||
//[HttpGet]
|
|||
//public IActionResult Index()
|
|||
//{
|
|||
// return View();
|
|||
//}
|
|||
|
|||
///// <summary>
|
|||
///// 视图
|
|||
///// </summary>
|
|||
///// <returns></returns>
|
|||
//[HttpGet]
|
|||
//public IActionResult Form()
|
|||
//{
|
|||
// return View();
|
|||
//}
|
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
///// <summary>
|
|||
///// 获取主表aw_photo的所有列表数据
|
|||
///// </summary>
|
|||
///// <param name="queryJson">查询参数,json字串</param>
|
|||
///// <returns></returns>
|
|||
//[HttpGet]
|
|||
//[AjaxOnly]
|
|||
//public async Task<IActionResult> GetList(string queryJson)
|
|||
//{
|
|||
// var list = await _bll.GetList(queryJson);
|
|||
// return Success(list);
|
|||
//}
|
|||
|
|||
///// <summary>
|
|||
///// 获取主表aw_photo的分页列表数据
|
|||
///// </summary>
|
|||
///// <param name="pagination">分页参数</param>
|
|||
///// <param name="queryJson">查询参数,json字串</param>
|
|||
///// <returns></returns>
|
|||
//[HttpGet]
|
|||
//[AjaxOnly]
|
|||
//public async Task<IActionResult> GetPageList(string pagination, string queryJson)
|
|||
//{
|
|||
// var pageObj = pagination.ToObject<Pagination>();
|
|||
// var list = await _bll.GetPageList(pageObj, queryJson);
|
|||
// var jsonData = new
|
|||
// {
|
|||
// rows = list,
|
|||
// pageObj.total,
|
|||
// pageObj.page,
|
|||
// pageObj.records
|
|||
// };
|
|||
// return Success(jsonData);
|
|||
//}
|
|||
|
|||
///// <summary>
|
|||
///// 获取表单数据
|
|||
///// </summary>
|
|||
///// <param name="keyValue">主键</param>
|
|||
///// <returns></returns>
|
|||
//[HttpGet]
|
|||
//[AjaxOnly]
|
|||
//public async Task<IActionResult> GetForm(string keyValue)
|
|||
//{
|
|||
// var photoEntity = await _bll.GetEntity(keyValue);
|
|||
// var jsonData = new
|
|||
// {
|
|||
// photoEntity
|
|||
// };
|
|||
// return Success(jsonData);
|
|||
//}
|
|||
|
|||
//#endregion 获取数据
|
|||
|
|||
//#region 提交数据
|
|||
|
|||
///// <summary>
|
|||
///// 删除表单数据
|
|||
///// </summary>
|
|||
///// <param name="keyValue"></param>
|
|||
///// <returns></returns>
|
|||
//[HttpPost]
|
|||
//[AjaxOnly]
|
|||
//public async Task<IActionResult> DeleteForm(string keyValue)
|
|||
//{
|
|||
// await _bll.Delete(keyValue);
|
|||
// return SuccessInfo("删除成功!");
|
|||
//}
|
|||
|
|||
///// <summary>
|
|||
///// 新增,更新
|
|||
///// </summary>
|
|||
///// <param name="keyValue">主键值</param>
|
|||
///// <param name="photoEntity">aw_photo实体数据</param>
|
|||
///// <returns></returns>
|
|||
//[HttpPost]
|
|||
//[AjaxOnly]
|
|||
//public async Task<IActionResult> SaveForm(string keyValue, PhotoEntity photoEntity)
|
|||
//{
|
|||
// var res = await _bll.SaveEntity(keyValue, photoEntity);
|
|||
// return Success("保存成功!", res);
|
|||
//}
|
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 扩展方法
|
|||
|
|||
/// <summary>
|
|||
/// 获取图片文件
|
|||
/// </summary>
|
|||
/// <param name="keyValue">图片序号</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public async Task<IActionResult> GetImg(string keyValue) |
|||
{ |
|||
var photoEntity = await _bll.GetEntity(new { SerialNumber = keyValue }); |
|||
if (photoEntity != null && !string.IsNullOrEmpty(photoEntity.Path) && System.IO.File.Exists(photoEntity.Path)) |
|||
{ |
|||
var arr = FileHelper.Read(photoEntity.Path); |
|||
return File(arr, "application/octet-stream", System.IO.Path.GetFileName(photoEntity.Path)); |
|||
} |
|||
else |
|||
{ |
|||
var arr = FileHelper.ReadRoot("/img/photoNoFind.jpg"); |
|||
return File(arr, "application/octet-stream", "photoNoFind.jpg"); |
|||
} |
|||
} |
|||
|
|||
#endregion 扩展方法
|
|||
} |
|||
} |
|||
@ -0,0 +1,354 @@ |
|||
using EC.App.AutoWeight.MonthPlan; |
|||
using EC.App.AutoWeight.Report; |
|||
using EC.App.AutoWeight.TransportBill; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
[Area("AutoWeight")] |
|||
public class ReportController : MvcControllerBase |
|||
{ |
|||
private readonly ReportIBll _bll; |
|||
|
|||
public ReportController(ReportIBll bll) |
|||
{ |
|||
_bll = bll; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
public IActionResult StatisticsSheetByDay() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
public IActionResult StatisticsSheetByMonth() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
public IActionResult StatisticsSheetByYear() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
public IActionResult BillVolumeScatterChartByDay() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
public IActionResult BillVolumeLineChartByMonth() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
public IActionResult BillRateScatterChartByDay() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
public IActionResult BillRateScatterChartByMonth() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
public IActionResult TruckGradeSheetByMonth() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryJson"></param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPlanInfoList(string queryJson) |
|||
{ |
|||
var queryParam = queryJson.ToJObject(); |
|||
var monthPlanList = (!queryParam["CompanyId"].IsEmpty()) ? (await _bll.GetMonthPlanList(queryParam)).ToList() : new List<MonthPlanEntity>(); |
|||
var planInfoList = new List<object>(); |
|||
|
|||
foreach (var plan in monthPlanList) |
|||
{ |
|||
queryParam["PlanSerialNumber"] = plan.SerialNumber; |
|||
var planInfo = (!queryParam["CompanyId"].IsEmpty()) ? (await _bll.GetMonthPlanInfo(queryParam)) : new MonthPlanInfoDto(); |
|||
if (plan?.PlanQty != null) planInfo.PlanQty = (decimal)plan?.PlanQty; |
|||
if (plan?.ActQty != null) planInfo.ActQty = (decimal)plan?.ActQty; |
|||
planInfo.CreateTime = plan.CreateTime; |
|||
planInfoList.Add(planInfo); |
|||
} |
|||
|
|||
var jsonData = new |
|||
{ |
|||
planInfoList |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryJson"></param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetStatisticsDataByDay(string queryJson) |
|||
{ |
|||
var queryParam = queryJson.ToJObject(); |
|||
|
|||
var billList = (!queryParam["CompanyId"].IsEmpty()) && !queryParam["SupplierId"].IsEmpty() ? await _bll.GetStatisticsBillListByDay(queryParam) : new List<TransportBillEntity>(); |
|||
|
|||
var jsonData = new |
|||
{ |
|||
billList |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryJson"></param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetStatisticsDataByMonth(string queryJson) |
|||
{ |
|||
var queryParam = queryJson.ToJObject(); |
|||
|
|||
var dayDtoList = (!queryParam["CompanyId"].IsEmpty()) && !queryParam["SupplierId"].IsEmpty() ? await _bll.GetStatisticsDataListByMonth(queryParam) : new List<DayStatisticsDto>(); |
|||
|
|||
var jsonData = new |
|||
{ |
|||
dayDtoList |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryJson"></param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetStatisticsDataByYear(string queryJson) |
|||
{ |
|||
var queryParam = queryJson.ToJObject(); |
|||
|
|||
var monthDtoList = (!queryParam["CompanyId"].IsEmpty()) && !queryParam["SupplierId"].IsEmpty() ? await _bll.GetStatisticsDataListByYear(queryParam) : new List<MonthStatisticsDto>(); |
|||
|
|||
var jsonData = new |
|||
{ |
|||
monthDtoList |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryJson"></param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetBillVolumeListByDay(string queryJson) |
|||
{ |
|||
var queryParam = queryJson.ToJObject(); |
|||
|
|||
var billList = (!queryParam["CompanyId"].IsEmpty()) && !queryParam["SupplierId"].IsEmpty() ? await _bll.GetBillVolumeListByDay(queryParam) : new List<TransportBillEntity>(); |
|||
var volumeList = new List<List<object>>(); |
|||
foreach (var bill in billList) |
|||
{ |
|||
var time = bill.InStartTime; |
|||
var volume = bill?.NetWeight; |
|||
volumeList.Add(new List<object> { time, volume }); |
|||
} |
|||
|
|||
var jsonData = new |
|||
{ |
|||
volumeList |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryJson"></param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetBillVolumeListByMonth(string queryJson) |
|||
{ |
|||
var queryParam = queryJson.ToJObject(); |
|||
|
|||
var dtoList = (!queryParam["CompanyId"].IsEmpty()) && !queryParam["SupplierId"].IsEmpty() ? await _bll.GetStatisticsDataListByMonth(queryParam) : new List<DayStatisticsDto>(); |
|||
|
|||
var date = !queryParam["StartTime"].IsEmpty() ? queryParam["StartTime"].ToDate() : new DateTime(); |
|||
var days = DateTime.DaysInMonth(date.Year, date.Month); |
|||
var volumeList = new List<List<object>>(); |
|||
for (var day = 1; day <= days; day++) |
|||
{ |
|||
var time = new DateTime(date.Year, date.Month, day).ToString("yyyy-MM-dd"); |
|||
volumeList.Add(new List<object> { time, 0 }); |
|||
} |
|||
foreach (var dto in dtoList) |
|||
{ |
|||
//var time = new DateTime(dto.Year, dto.Month, dto.Day).ToString("yyyy-MM-dd");
|
|||
var volume = dto.NetWeightSum; |
|||
volumeList[dto.Day][1] = volume; |
|||
} |
|||
|
|||
var jsonData = new |
|||
{ |
|||
volumeList |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryJson"></param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetBillRateListByMonth(string queryJson) |
|||
{ |
|||
var queryParam = queryJson.ToJObject(); |
|||
|
|||
var billList = (!queryParam["CompanyId"].IsEmpty()) && !queryParam["SupplierId"].IsEmpty() ? await _bll.GetBillStandardRateListByMonth(queryParam) : new List<TransportBillEntity>(); |
|||
var rateList = new List<List<object>>(); |
|||
foreach (var bill in billList) |
|||
{ |
|||
var time = bill.InStartTime?.Day; |
|||
var rate = bill?.StandardRate; |
|||
rateList.Add(new List<object> { time, rate }); |
|||
} |
|||
|
|||
var jsonData = new |
|||
{ |
|||
rateList |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryJson"></param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetBillRateListByDay(string queryJson) |
|||
{ |
|||
var queryParam = queryJson.ToJObject(); |
|||
|
|||
var billList = (!queryParam["CompanyId"].IsEmpty()) && !queryParam["SupplierId"].IsEmpty() ? await _bll.GetBillStandardRateListByDay(queryParam) : new List<TransportBillEntity>(); |
|||
var rateList = new List<List<object>>(); |
|||
foreach (var bill in billList) |
|||
{ |
|||
var time = bill.InStartTime; |
|||
var rate = bill?.StandardRate; |
|||
rateList.Add(new List<object> { time, rate }); |
|||
} |
|||
|
|||
var jsonData = new |
|||
{ |
|||
rateList |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// CompanyId,SupplierId,StartTime,EndTime,State
|
|||
/// </summary>
|
|||
/// <param name="queryJson"></param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetTruckGradeByMonth(string queryJson) |
|||
{ |
|||
var queryParam = queryJson.ToJObject(); |
|||
var originBillList = (!queryParam["CompanyId"].IsEmpty()) && !queryParam["SupplierId"].IsEmpty() ? (await _bll.GetTruckGradeListByMonth(queryParam)).ToList() : new List<TransportBillEntity>(); |
|||
|
|||
List<TransportBillEntity> billList = new(); |
|||
int count = originBillList.Count; |
|||
if (count <= 0) |
|||
return Success(new { billList }); |
|||
|
|||
string logPlate = string.Empty; |
|||
int logStart = 0, logEnd = 0; |
|||
decimal diffWeightStandard = 0.07m; |
|||
int diffWeightLen = 3; |
|||
|
|||
for (int i = 0; i < count; i++) |
|||
{ |
|||
var bill = originBillList[i]; |
|||
var plateEqual = i != 0 ? bill.LicensePlate.Equals(logPlate) : true; |
|||
var diffWeightOut = (decimal)(bill.BillWeight - bill.NetWeight) >= diffWeightStandard; |
|||
if (diffWeightOut) { |
|||
billList.Add(originBillList[i]); |
|||
} |
|||
//if (plateEqual)
|
|||
//{
|
|||
// if (diffWeightOut)
|
|||
// {
|
|||
// logEnd = i;
|
|||
// }
|
|||
// else
|
|||
// {
|
|||
// if ((logEnd - logStart + 1) >= diffWeightLen)
|
|||
// {
|
|||
// //if (billList.Count > 0)
|
|||
// // billList.Add(new());
|
|||
|
|||
// for (int j = logStart; j <= logEnd; j++)
|
|||
// {
|
|||
// billList.Add(originBillList[j]);
|
|||
// }
|
|||
// }
|
|||
// logStart = i + 1;
|
|||
// logEnd = i + 1;
|
|||
// }
|
|||
//}
|
|||
//else
|
|||
//{
|
|||
// if ((logEnd - logStart + 1) >= diffWeightLen)
|
|||
// {
|
|||
// //if (billList.Count > 0)
|
|||
// // billList.Add(new());
|
|||
|
|||
// for (int j = logStart; j <= logEnd; j++)
|
|||
// {
|
|||
// billList.Add(originBillList[j]);
|
|||
// }
|
|||
// }
|
|||
// logPlate = bill.LicensePlate;
|
|||
// logStart = i;
|
|||
// logEnd = i;
|
|||
//}
|
|||
} |
|||
|
|||
var jsonData = new |
|||
{ |
|||
billList |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,133 @@ |
|||
using EC.App.AutoWeight.Site; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
[Area("AutoWeight")] |
|||
public class SiteController : MvcControllerBase |
|||
{ |
|||
private readonly SiteIBll _bll; |
|||
|
|||
public SiteController(SiteIBll bll) |
|||
{ |
|||
_bll = bll; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetForm(string keyValue) |
|||
{ |
|||
var driverEntity = await _bll.GetEntity(keyValue); |
|||
var jsonData = new |
|||
{ |
|||
driverEntity |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetList(string queryJson) |
|||
{ |
|||
var queryParam = queryJson.ToJObject(); |
|||
if (queryParam["CompanyId"].IsEmpty()) |
|||
queryParam["CompanyId"] = CurrentUser().Result.F_CompanyId; |
|||
var list = await _bll.GetList(queryParam); |
|||
return Success(list); |
|||
} |
|||
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPageList(string pagination, string queryJson) |
|||
{ |
|||
var pageObj = pagination.ToObject<Pagination>(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
if (queryParam["CompanyId"].IsEmpty()) |
|||
queryParam["CompanyId"] = CurrentUser().Result.F_CompanyId; |
|||
var list = await _bll.GetPageList(pageObj, queryParam); |
|||
var jsonData = new |
|||
{ |
|||
rows = list, |
|||
pageObj.total, |
|||
pageObj.page, |
|||
pageObj.records |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取树形数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetTree(string companyId) |
|||
{ |
|||
if (companyId == null) throw new ArgumentNullException(nameof(companyId)); |
|||
var data = await _bll.GetTree(companyId); |
|||
return this.Success(data); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue"></param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> DeleteForm(string keyValue) |
|||
{ |
|||
await _bll.Delete(keyValue); |
|||
return SuccessInfo("删除成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="entity">aw_auth实体数据</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string keyValue, SiteEntity entity) |
|||
{ |
|||
var res = await _bll.SaveEntity(keyValue, entity); |
|||
return Success("保存成功!", res); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,148 @@ |
|||
using EC.App.AutoWeight.Supplier; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-10 21:49:17
|
|||
/// 描 述: 供应商 aw_supplier
|
|||
/// </summary>
|
|||
[Area("AutoWeight")] |
|||
public class SupplierController : MvcControllerBase |
|||
{ |
|||
private readonly SupplierIBll _bll; |
|||
|
|||
public SupplierController(SupplierIBll bll) |
|||
{ |
|||
_bll = bll; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetForm(string keyValue) |
|||
{ |
|||
var supplierEntity = await _bll.GetEntity(keyValue); |
|||
var jsonData = new |
|||
{ |
|||
supplierEntity |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetList(string queryJson) |
|||
{ |
|||
var list = await _bll.GetList(queryJson); |
|||
return Success(list); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_supplier的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPageList(string pagination, string queryJson) |
|||
{ |
|||
var pageObj = pagination.ToObject<Pagination>(); |
|||
var list = await _bll.GetPageList(pageObj, queryJson); |
|||
var jsonData = new |
|||
{ |
|||
rows = list, |
|||
pageObj.total, |
|||
pageObj.page, |
|||
pageObj.records |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取树形数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetTree() |
|||
{ |
|||
var data = await _bll.GetTree(); |
|||
return this.Success(data); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue"></param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> DeleteForm(string keyValue) |
|||
{ |
|||
await _bll.Delete(keyValue); |
|||
return SuccessInfo("删除成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="supplierEntity">aw_supplier实体数据</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string keyValue, SupplierEntity supplierEntity) |
|||
{ |
|||
var res = await _bll.SaveEntity(keyValue, supplierEntity); |
|||
return Success("保存成功!", res); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
using Microsoft.AspNetCore.Mvc; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
[Area("AutoWeight")] |
|||
public class TestController : MvcControllerBase |
|||
{ |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,146 @@ |
|||
using System.Collections.Generic; |
|||
using EC.App.AutoWeight.Trailer; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-11 15:35:20
|
|||
/// 描 述: 运输车辆管理 aw_Trailer
|
|||
/// </summary>
|
|||
[Area("AutoWeight")] |
|||
public class TrailerController : MvcControllerBase |
|||
{ |
|||
private readonly TrailerIBll _bll; |
|||
|
|||
public TrailerController(TrailerIBll bll) |
|||
{ |
|||
_bll = bll; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetForm(string keyValue) |
|||
{ |
|||
var TrailerEntity = await _bll.GetEntity(keyValue); |
|||
var jsonData = new |
|||
{ |
|||
TrailerEntity |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetList(string queryJson) |
|||
{ |
|||
var list = await _bll.GetList(queryJson); |
|||
return Success(list); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_Trailer的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPageList(string pagination, string queryJson) |
|||
{ |
|||
var pageObj = pagination.ToObject<Pagination>(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var list = (!queryParam["SupplierId"].IsEmpty()) ? await _bll.GetPageList(pageObj, queryParam) : new List<TrailerEntity>(); |
|||
var jsonData = new |
|||
{ |
|||
rows = list, |
|||
pageObj.total, |
|||
pageObj.page, |
|||
pageObj.records |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetTree(int? supplierId) |
|||
{ |
|||
var data = await _bll.GetTree(supplierId); |
|||
return this.Success(data); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue"></param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> DeleteForm(string keyValue) |
|||
{ |
|||
await _bll.Delete(keyValue); |
|||
return SuccessInfo("删除成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="TrailerEntity">aw_Trailer实体数据</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string keyValue, TrailerEntity TrailerEntity) |
|||
{ |
|||
var res = await _bll.SaveEntity(keyValue, TrailerEntity); |
|||
return Success("保存成功!", res); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,139 @@ |
|||
using EC.App.AutoWeight.TransportBill; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-11 15:35:53
|
|||
/// 描 述: 运单管理 aw_transportBill
|
|||
/// </summary>
|
|||
[Area("AutoWeight")] |
|||
public class TransportBillController : MvcControllerBase |
|||
{ |
|||
private readonly TransportBillIBll _bll; |
|||
|
|||
public TransportBillController(TransportBillIBll bll) |
|||
{ |
|||
_bll = bll; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetForm(string keyValue) |
|||
{ |
|||
var transportBillEntity = await _bll.GetEntity(keyValue); |
|||
var jsonData = new |
|||
{ |
|||
transportBillEntity |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetList(string queryJson) |
|||
{ |
|||
var list = await _bll.GetList(queryJson); |
|||
return Success(list); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_transportBill的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPageList(string pagination, string queryJson) |
|||
{ |
|||
var pageObj = pagination.ToObject<Pagination>(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
if (queryParam["CompanyId"].IsEmpty()) |
|||
queryParam["CompanyId"] = CurrentUser().Result.F_CompanyId; |
|||
var list = await _bll.GetPageList(pageObj, queryParam); |
|||
var jsonData = new |
|||
{ |
|||
rows = list, |
|||
pageObj.total, |
|||
pageObj.page, |
|||
pageObj.records |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue"></param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> DeleteForm(string keyValue) |
|||
{ |
|||
await _bll.Delete(keyValue); |
|||
return SuccessInfo("删除成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="transportBillEntity">aw_transportBill实体数据</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string keyValue, TransportBillEntity transportBillEntity) |
|||
{ |
|||
var res = await _bll.SaveEntity(keyValue, transportBillEntity); |
|||
return Success("保存成功!", res); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,146 @@ |
|||
using System.Collections.Generic; |
|||
using EC.App.AutoWeight.Truck; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.AutoWeight.Controllers |
|||
{ |
|||
/// <summary>
|
|||
/// 汽车衡
|
|||
/// Copyright (c) 2019-present 汽车衡
|
|||
/// 创建人:lxc
|
|||
/// 日 期: 2020-11-11 15:35:20
|
|||
/// 描 述: 运输车辆管理 aw_truck
|
|||
/// </summary>
|
|||
[Area("AutoWeight")] |
|||
public class TruckController : MvcControllerBase |
|||
{ |
|||
private readonly TruckIBll _bll; |
|||
|
|||
public TruckController(TruckIBll bll) |
|||
{ |
|||
_bll = bll; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 视图
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetForm(string keyValue) |
|||
{ |
|||
var truckEntity = await _bll.GetEntity(keyValue); |
|||
var jsonData = new |
|||
{ |
|||
truckEntity |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的所有列表数据
|
|||
/// </summary>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetList(string queryJson) |
|||
{ |
|||
var list = await _bll.GetList(queryJson); |
|||
return Success(list); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取主表aw_truck的分页列表数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数,json字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPageList(string pagination, string queryJson) |
|||
{ |
|||
var pageObj = pagination.ToObject<Pagination>(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
var list = (!queryParam["SupplierId"].IsEmpty()) ? await _bll.GetPageList(pageObj, queryParam) : new List<TruckEntity>(); |
|||
var jsonData = new |
|||
{ |
|||
rows = list, |
|||
pageObj.total, |
|||
pageObj.page, |
|||
pageObj.records |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetTree(int? supplierId) |
|||
{ |
|||
var data = await _bll.GetTree(supplierId); |
|||
return this.Success(data); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue"></param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> DeleteForm(string keyValue) |
|||
{ |
|||
await _bll.Delete(keyValue); |
|||
return SuccessInfo("删除成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 新增,更新
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键值</param>
|
|||
/// <param name="truckEntity">aw_truck实体数据</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string keyValue, TruckEntity truckEntity) |
|||
{ |
|||
var res = await _bll.SaveEntity(keyValue, truckEntity); |
|||
return Success("保存成功!", res); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,95 @@ |
|||
@{ |
|||
ViewData["Title"] = "运输权限表单"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
|
|||
<div id="form" class="lr-form-wrap" formAuth="yes"> |
|||
<input id="SupplierId" type="hidden" /> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">运输员<font face="宋体">*</font></div> |
|||
<div id="DriverId" isvalid="yes" checkexpession="NotNull"></div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">运输车<font face="宋体">*</font></div> |
|||
<div id="TruckId" isvalid="yes" checkexpession="NotNull"></div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="checkbox"> |
|||
<label> |
|||
<input id="IsWork" type="checkbox" checked="checked" /> |
|||
有效 |
|||
</label> |
|||
</div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">备注</div> |
|||
<textarea id="Remark" class="form-control" style="height:90px;"></textarea> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
var selectedRow = learun.frameTab.currentIframe().selectedRow; |
|||
var supplierId = request('supplierId'); |
|||
var keyValue = !!selectedRow ? selectedRow.Id : ''; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
}, |
|||
bind: function () { |
|||
$('#DriverId').lrselect({ |
|||
url: top.$.rootUrl + '/AutoWeight/Driver/GetTree', |
|||
param: { |
|||
"SupplierId": !!selectedRow ? selectedRow.SupplierId : supplierId |
|||
}, |
|||
type: 'tree', |
|||
maxHeight: 180, |
|||
allowSearch: true |
|||
}); |
|||
$('#TruckId').lrselect({ |
|||
url: top.$.rootUrl + '/AutoWeight/Truck/GetTree', |
|||
param: { |
|||
"SupplierId": !!selectedRow ? selectedRow.SupplierId : supplierId |
|||
}, |
|||
type: 'tree', |
|||
maxHeight: 180, |
|||
allowSearch: true |
|||
}); |
|||
}, |
|||
initData: function () { |
|||
if (!!selectedRow) { |
|||
$('#form').lrSetFormData(selectedRow); |
|||
} |
|||
else { |
|||
$('#SupplierId').val(supplierId); |
|||
} |
|||
}, |
|||
validForm: function (code) { |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
save: function (processId, callback) { |
|||
var postData = $('body').lrGetFormData(); |
|||
postData.Id = processId; |
|||
$.lrSaveForm(top.$.rootUrl + '/AutoWeight/Auth/SaveForm', postData, function (res) { |
|||
// 保存成功后才回调 |
|||
callback && callback(res); |
|||
}); |
|||
} |
|||
}; |
|||
// 保存数据 |
|||
window.acceptClick = function (callback) { |
|||
if (page.validForm()) { |
|||
page.save(keyValue, function (res) { |
|||
callback && callback(); |
|||
}); |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,255 @@ |
|||
@{ |
|||
ViewData["Title"] = "运输权限管理"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
|
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">供应商信息</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择供应商</span> - <span class="lrlg">运输权限信息</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<div id="datesearch" class="datetime"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" /> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_hint" class="fa fa-question-circle" style="font-size: 18px; color: orange;"></a> |
|||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> <span class="lrlg">查询</span></a> |
|||
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i> <span class="lrlg">重置</span></a> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
<div class="btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="btn_add" class="btn btn-default"><i class="fa fa-plus"></i> <span class="lrlg">新增</span></a> |
|||
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></a> |
|||
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body" id="gridtable"></div> |
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
|
|||
<script> |
|||
var selectedRow; |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
SupplierId: '', |
|||
Keyword: '' |
|||
}; |
|||
var checkJustReturn = false; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
}, |
|||
bind: function () { |
|||
//日期查询 |
|||
$('.datetime').each(function () { |
|||
$(this).lrdate({ |
|||
//初始值 |
|||
dfdata: [ |
|||
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近1月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近3月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
], |
|||
// 初始索引值 |
|||
dfvalue: '-1', |
|||
selectfn: function (begin, end) { |
|||
curParam.StartTime = begin; |
|||
curParam.EndTime = end; |
|||
page.search(); |
|||
} |
|||
}); |
|||
}); |
|||
$('#btn_hint').popover({ |
|||
trigger: 'hover',//触发方式 |
|||
placement: 'right',//弹出框位置 |
|||
html: true,//添加data-html="true"之后,data-content里面就可以添加HTML代码 |
|||
//title: 'title', |
|||
content: " 查询时间:<br>创建时间<br>" + |
|||
" 查询关键字:<br>运输员名、运输车车牌", |
|||
container: 'body' |
|||
}); |
|||
// 查询 |
|||
$('#btn_Search').on('click', function () { |
|||
curParam.Keyword = $('#txt_Keyword').val(); |
|||
page.search(); |
|||
}); |
|||
// 重置 |
|||
$('#btn_Reset').on('click', function () { |
|||
var tempId = curParam.SupplierId; |
|||
curParam = {}; |
|||
curParam.SupplierId = tempId; |
|||
checkJustReturn = true; |
|||
$('#datesearch').find('.lr-search-date-btn-block:last').find('a').click(); |
|||
$('#txt_Keyword').val(''); |
|||
checkJustReturn = false; |
|||
page.search(); |
|||
}); |
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
//新增 |
|||
$('#btn_add').on('click', function () { |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
selectedRow = null; |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '新增', |
|||
url: top.$.rootUrl + '/AutoWeight/Auth/Form?supplierId=' + curParam.SupplierId, |
|||
height: 500, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
}); |
|||
//编辑 |
|||
$('#btn_edit').on('click', function () { |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
selectedRow = $('#gridtable').jfGridGet('rowdata'); |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '编辑', |
|||
url: top.$.rootUrl + '/AutoWeight/Auth/Form?supplierId=' + curParam.SupplierId, |
|||
height: 500, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
//删除 |
|||
$('#btn_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该项!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/AutoWeight/Auth/DeleteForm', { keyValue: keyValue }, function () { |
|||
page.refreshData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
nodeClick: page.treeNodeClick |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.SupplierId = item.id; |
|||
page.search(); |
|||
}, |
|||
initGrid: function () { |
|||
$('#gridtable').lrAuthorizeJfGrid({ |
|||
url: top.$.rootUrl + '/AutoWeight/Auth/GetPageList', |
|||
isPage: true, |
|||
mainId: 'Id', |
|||
rows: 30, |
|||
sidx: '',//排序字段只有在分页的情况下支持,多个字段用,隔开 |
|||
headData: [ |
|||
{ |
|||
label: "Id", name: "Id", ishide: true |
|||
}, |
|||
{ |
|||
label: "运输员", name: "DriverName", width: 150, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "运输车", name: "TruckPlate", width: 150, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "有效", name: "IsWork", width: 50, align: "center", |
|||
formatter: function (value) { |
|||
return value === 1 ? "<i class='fa fa-check' style='color:green'></i>" : "<i class='fa fa-close' style='color:red'></i>"; |
|||
} |
|||
}, |
|||
{ |
|||
label: "创建者", name: "CreateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "创建时间", name: "CreateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "更新者", name: "UpdateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "更新时间", name: "UpdateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "备注", name: "Remark", align: "left" |
|||
} |
|||
] |
|||
}); |
|||
}, |
|||
beforeSearch: function () { |
|||
if (checkJustReturn){ |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
search: function (param) { |
|||
if (page.beforeSearch()) { |
|||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(curParam) }); |
|||
} |
|||
}, |
|||
refreshData: function () { |
|||
page.search(); |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,244 @@ |
|||
@{ |
|||
ViewData["Title"] = "运输员表单"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
|
|||
<div id="form" class="lr-form-wrap" formAuth="yes"> |
|||
<input id="SupplierId" type="hidden" /> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">姓名<font face="宋体">*</font></div> |
|||
<input id="Name" type="text" class="form-control" placeholder="请输入姓名" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
|
|||
@*<div class="lr-form-item-title">身份证号</div> |
|||
<input id="IdCard" type="text" class="form-control" placeholder="请输入身份证号" />*@ |
|||
|
|||
<div class="lr-form-item-title">身份证号<font face="宋体">*</font></div> |
|||
<input id="IdCard" type="text" class="form-control" placeholder="请输入身份证号" isvalid="yes" checkexpession="IDCard" /> |
|||
|
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">手机<font face="宋体">*</font></div> |
|||
<input id="Telephone" type="text" class="form-control" placeholder="请输入手机" isvalid="yes" checkexpession="Mobile" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">类型<font face="宋体">*</font></div> |
|||
<div id="Type" isvalid="yes" checkexpession="NotNull"> |
|||
<ul style="display:none;"> |
|||
<li data-value="0">运输员</li> |
|||
<li data-value="1">押运员</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
|
|||
<div class="lr-form-item-title">指纹1<font face="宋体">*</font></div> |
|||
<input id="Finger1" type="hidden" class="form-control" placeholder="请录入指纹"/> |
|||
|
|||
@*<div class="lr-form-item-title">指纹1<font face="宋体">*</font></div> |
|||
<input id="Finger1" type="hidden" class="form-control" placeholder="请录入指纹" isvalid="yes" checkexpession="NotNull" />*@ |
|||
|
|||
<button class="fingerBtn btn btn-sm"></button> |
|||
<i class="fa"></i> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
|
|||
<div class="lr-form-item-title">指纹2<font face="宋体">*</font></div> |
|||
<input id="Finger2" type="hidden" class="form-control" placeholder="请录入指纹"/> |
|||
|
|||
@*<div class="lr-form-item-title">指纹2<font face="宋体">*</font></div> |
|||
<input id="Finger2" type="hidden" class="form-control" placeholder="请录入指纹" isvalid="yes" checkexpession="NotNull" />*@ |
|||
|
|||
<button class="fingerBtn btn btn-sm"></button> |
|||
<i class="fa"></i> |
|||
<i></i> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">备注</div> |
|||
<textarea id="Remark" class="form-control" style="height:90px;"></textarea> |
|||
</div> |
|||
</div> |
|||
|
|||
<object id="ObjFinger" style="display:none" CLASSID="CLSID:{94793CDE-C768-449B-BE87-40147B56032D}" codebase="libFPDev_TESO.ocx" |
|||
width="152" height="200" border="1"> |
|||
</object> |
|||
|
|||
<script> |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
var selectedRow = learun.frameTab.currentIframe().selectedRow; |
|||
var supplierId = request('supplierId'); |
|||
var keyValue = !!selectedRow ? selectedRow.Id : ''; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
page.bindFingerOcx(); |
|||
}, |
|||
bind: function () { |
|||
// 目标 |
|||
$('#Type').lrselect(); |
|||
/*检测重复项*/ |
|||
$('#IdCard').on('blur', function () { |
|||
$.lrExistField(keyValue, 'IdCard', 'aw_driver', 'Id'); |
|||
}); |
|||
}, |
|||
initData: function () { |
|||
if (!!selectedRow) { |
|||
$('#form').lrSetFormData(selectedRow); |
|||
} |
|||
else { |
|||
$('#SupplierId').val(supplierId); |
|||
} |
|||
}, |
|||
validForm: function (code) { |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
save: function (processId, callback) { |
|||
var postData = $('body').lrGetFormData(); |
|||
postData.Id = processId; |
|||
$.lrSaveForm(top.$.rootUrl + '/AutoWeight/Driver/SaveForm', postData, function (res) { |
|||
// 保存成功后才回调 |
|||
callback && callback(res); |
|||
}); |
|||
}, |
|||
bindFingerOcx: function () { |
|||
var objFinger = document.getElementById("ObjFinger"); |
|||
fingerManager.init(objFinger); |
|||
var fingerBtnList = document.getElementsByClassName("fingerBtn"); |
|||
//es5 |
|||
for (let i = 0; i < fingerBtnList.length; i++) { |
|||
var fingerBtn = fingerBtnList[i]; |
|||
var fingerTxt = fingerBtn.previousElementSibling; |
|||
|
|||
if (!!(fingerTxt.value)) { |
|||
fingerBtn.classList.remove("btn-success"); |
|||
fingerBtn.classList.add("btn-warning"); |
|||
fingerBtn.innerHTML = "重录"; |
|||
} else { |
|||
fingerBtn.classList.remove("btn-warning"); |
|||
fingerBtn.classList.add("btn-success"); |
|||
fingerBtn.innerHTML = "录入"; |
|||
} |
|||
|
|||
fingerBtn.addEventListener("click", function (e) { |
|||
var btn = e.target; |
|||
var txt = btn.previousElementSibling; |
|||
var hint = btn.nextElementSibling; |
|||
if (!fingerManager.canUse()) { |
|||
fingerManager.showAlert("IE浏览器下才能录入指纹,如若不行,请尝试以管理员身份启动IE浏览器"); |
|||
return; |
|||
} |
|||
|
|||
var fp = fingerManager.getRegFp(); |
|||
var code = fingerManager.getOperateCode(); |
|||
if (typeof(fp) === "string" && !!fp) { |
|||
$(txt).lrRemoveValidMessage(); |
|||
txt.value = fp; |
|||
hint.classList.remove("fa-close"); |
|||
hint.classList.add("fa-check"); |
|||
hint.style.color = "green"; |
|||
} else if (code < 0 && code !== -17) { |
|||
//不是因为取消操作而出现的错误 |
|||
hint.classList.remove("fa-check"); |
|||
hint.classList.add("fa-close"); |
|||
hint.style.color = "red"; |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
}; |
|||
// 保存数据 |
|||
window.acceptClick = function (callback) { |
|||
if (page.validForm()) { |
|||
page.save(keyValue, function (res) { |
|||
callback && callback(); |
|||
}); |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
|
|||
var fingerManager = { |
|||
obj: null, //ocx对象 |
|||
param : { |
|||
port: 0, //端口,usb为0 |
|||
regWaitTime: 30 * 1000, //录入模板指纹等待时间 |
|||
verWaitTime: 18 * 1000, //录入验证指纹等待时间 |
|||
matchLevel: 3, //比对指纹安全级别,[1-5] |
|||
}, |
|||
code: 0, |
|||
init: function (obj, param) { |
|||
this.obj = obj; |
|||
Object.assign(this.param, param);//ie下需兼容(已兼容,/View/Shared/_Form.cshtml) |
|||
this.initDev(); |
|||
}, |
|||
initDev: function () { |
|||
this.obj.nSucStrFmtTyp = 1; // 0x30 拆分格式 |
|||
//this.obj.nComProtocol = 2;// 商行协议 |
|||
this.obj.nUsbProtocol = 0; // USB协议 |
|||
this.obj.nRegShowDlg = 1; // 是否显示 注册指纹模板时的对话框 |
|||
this.obj.nVerShowDlg = 1; // 是否显示 验证指纹特征时的对话框 |
|||
this.obj.nNotSpeedUp = 4; |
|||
}, |
|||
//验证控件是否符合规范 |
|||
canUse: function () { |
|||
var obj = this.obj; |
|||
var msg = ""; |
|||
if (!obj) msg += "没有 ocx 控件\n"; |
|||
if (typeof (obj.FPIGetTemplate) != "unknown") msg += "没有 FPIGetTemplate 方法\n"; |
|||
if (typeof (obj.FPIGetFeature) != "unknown") msg += "没有 FPIGetFeature 方法\n"; |
|||
if (typeof (obj.FPIFpMatch) != "unknown") msg += "没有 FPIFpMatch 方法\n"; |
|||
if (typeof (obj.FPIGetFingerInfo) != "string") msg += "没有 FPIGetFingerInfo 方法\n"; |
|||
this.code = (msg === "") ? 0 : -1; |
|||
return msg === ""; |
|||
}, |
|||
getRegFp: function () { |
|||
var obj = this.obj; |
|||
var param = this.param; |
|||
var ret = obj.FPIGetTemplate(param.port, param.regWaitTime); // 0:success,<0:failure |
|||
this.code = ret; |
|||
this.handleOperateCode(); |
|||
return obj.FPIGetFingerInfo(); |
|||
}, |
|||
getVerFp: function () { |
|||
var obj = this.obj; |
|||
var param = this.param; |
|||
var ret = obj.FPIGetFeature(param.port, param.verWaitTime); // 0:success,<0:failure |
|||
this.code = ret; |
|||
this.handleOperateCode(); |
|||
return obj.FPIGetFingerInfo(); |
|||
}, |
|||
matchFinger: function (regFp,verFp) { |
|||
var obj = this.obj; |
|||
var param = this.param; |
|||
var ret = obj.FPIFpMatch(regFp, verFp, param.matchLevel); // 0:success,<0:failure |
|||
this.code = ret; |
|||
this.handleOperateCode(); |
|||
return ret === 0; |
|||
}, |
|||
getOperateCode: function () { |
|||
return this.code; |
|||
}, |
|||
handleOperateCode: function () { |
|||
var code = this.getOperateCode(); |
|||
if (code < 0) { |
|||
this.showConsole("错误码:" + code); |
|||
} |
|||
if (code === -15) { |
|||
fingerManager.showAlert("错误码:" + code + ",请尝试以管理员身份启动IE浏览器。"); |
|||
} |
|||
}, |
|||
showAlert: function (msg) { |
|||
alert(msg); |
|||
}, |
|||
showConsole: function (msg) { |
|||
console.log(msg); |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,279 @@ |
|||
@{ |
|||
ViewData["Title"] = "运输员管理"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
|
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">供应商信息</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择供应商</span> - <span class="lrlg">运输员信息</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<div id="datesearch" class="datetime"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" /> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_hint" class="fa fa-question-circle" style="font-size: 18px; color: orange;"></a> |
|||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> <span class="lrlg">查询</span></a> |
|||
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i> <span class="lrlg">重置</span></a> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
<div class="btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="btn_add" class="btn btn-default"><i class="fa fa-plus"></i> <span class="lrlg">新增</span></a> |
|||
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></a> |
|||
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body" id="gridtable"></div> |
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
|
|||
<script> |
|||
var selectedRow; |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
SupplierId: '', |
|||
Keyword: '' |
|||
}; |
|||
var driverType = { |
|||
"0": "运输员", |
|||
"1": "押运员" |
|||
}; |
|||
var checkJustReturn = false; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
}, |
|||
bind: function () { |
|||
//日期查询 |
|||
$('.datetime').each(function () { |
|||
$(this).lrdate({ |
|||
//初始值 |
|||
dfdata: [ |
|||
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近1月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近3月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
], |
|||
// 初始索引值 |
|||
dfvalue: '-1', |
|||
selectfn: function (begin, end) { |
|||
curParam.StartTime = begin; |
|||
curParam.EndTime = end; |
|||
page.search(); |
|||
} |
|||
}); |
|||
}); |
|||
$('#btn_hint').popover({ |
|||
trigger: 'hover',//触发方式 |
|||
placement: 'right',//弹出框位置 |
|||
html: true,//添加data-html="true"之后,data-content里面就可以添加HTML代码 |
|||
//title: 'title', |
|||
content: " 查询时间:<br>创建时间<br>" + |
|||
" 查询关键字:<br>运输员名、身份证号", |
|||
container: 'body' |
|||
}); |
|||
// 查询 |
|||
$('#btn_Search').on('click', function () { |
|||
curParam.Keyword = $('#txt_Keyword').val(); |
|||
page.search(); |
|||
}); |
|||
// 重置 |
|||
$('#btn_Reset').on('click', function () { |
|||
var tempId = curParam.SupplierId; |
|||
curParam = {}; |
|||
curParam.SupplierId = tempId; |
|||
checkJustReturn = true; |
|||
$('#datesearch').find('.lr-search-date-btn-block:last').find('a').click(); |
|||
$('#txt_Keyword').val(''); |
|||
checkJustReturn = false; |
|||
page.search(); |
|||
}); |
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
//新增 |
|||
$('#btn_add').on('click', function () { |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
selectedRow = null; |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '新增', |
|||
url: top.$.rootUrl + '/AutoWeight/Driver/Form?supplierId=' + curParam.SupplierId, |
|||
height: 500, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
}); |
|||
//编辑 |
|||
$('#btn_edit').on('click', function () { |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
selectedRow = $('#gridtable').jfGridGet('rowdata'); |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '编辑', |
|||
url: top.$.rootUrl + '/AutoWeight/Driver/Form?supplierId=' + curParam.SupplierId, |
|||
height: 500, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
console.log(top[id]); |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
//删除 |
|||
$('#btn_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该项!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/AutoWeight/Driver/DeleteForm', { keyValue: keyValue }, function () { |
|||
page.refreshData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
nodeClick: page.treeNodeClick |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.SupplierId = item.id; |
|||
page.search(); |
|||
}, |
|||
initGrid: function () { |
|||
$('#gridtable').lrAuthorizeJfGrid({ |
|||
url: top.$.rootUrl + '/AutoWeight/Driver/GetPageList', |
|||
isPage: true, |
|||
mainId: 'Id', |
|||
rows: 30, |
|||
sidx: '',//排序字段只有在分页的情况下支持,多个字段用,隔开 |
|||
headData: [ |
|||
{ |
|||
label: "Id", name: "Id", ishide: true |
|||
}, |
|||
{ |
|||
label: "姓名", name: "Name", width: 100, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "身份证号", name: "IdCard", width: 160, align: "center", |
|||
formatter: function (value) { |
|||
return !!value ? value.slice(0, 6) + "****" + value.slice(-6) : ""; |
|||
} |
|||
}, |
|||
{ |
|||
label: "手机", name: "Telephone", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "类型", name: "Type", width: 60, align: "center", |
|||
formatter: function (value) { |
|||
return driverType[value] || ""; |
|||
} |
|||
}, |
|||
{ |
|||
label: "指纹1", name: "Finger1", width: 50, align: "center", |
|||
formatter: function (value) { |
|||
return !!value ? "<i class='fa fa-check' style='color:green'></i>" : "<i class='fa fa-close' style='color:red'></i>"; |
|||
} |
|||
}, |
|||
{ |
|||
label: "指纹2", name: "Finger2", width: 50, align: "center", |
|||
formatter: function (value) { |
|||
return !!value ? "<i class='fa fa-check' style='color:green'></i>" : "<i class='fa fa-close' style='color:red'></i>"; |
|||
} |
|||
}, |
|||
{ |
|||
label: "创建者", name: "CreateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "创建时间", name: "CreateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "更新者", name: "UpdateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "更新时间", name: "UpdateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "备注", name: "Remark", align: "left" |
|||
} |
|||
] |
|||
}); |
|||
}, |
|||
beforeSearch: function () { |
|||
if (checkJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
search: function (param) { |
|||
if (page.beforeSearch()) { |
|||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(curParam) }); |
|||
} |
|||
}, |
|||
refreshData: function () { |
|||
page.search(); |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
|
|||
</script> |
|||
@ -0,0 +1,56 @@ |
|||
@{ |
|||
ViewData["Title"] = "运输配置表单"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
|
|||
<div id="form" class="lr-form-wrap" formAuth="yes"> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">备注</div> |
|||
<textarea id="Remark" class="form-control" style="height:90px;"></textarea> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
var selectedRow = learun.frameTab.currentIframe().selectedRow; |
|||
var keyValue = !!selectedRow ? selectedRow.Id : ''; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
}, |
|||
bind: function () { |
|||
}, |
|||
initData: function () { |
|||
if (!!selectedRow) { |
|||
$('#form').lrSetFormData(selectedRow); |
|||
} |
|||
}, |
|||
validForm: function (code) { |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
save: function (processId, callback) { |
|||
var postData = $('body').lrGetFormData(); |
|||
postData.Id = processId; |
|||
$.lrSaveForm(top.$.rootUrl + '/AutoWeight/Ini/SaveForm', postData, function (res) { |
|||
// 保存成功后才回调 |
|||
callback && callback(res); |
|||
}); |
|||
} |
|||
}; |
|||
// 保存数据 |
|||
window.acceptClick = function (callback) { |
|||
if (page.validForm()) { |
|||
page.save(keyValue, function (res) { |
|||
callback && callback(); |
|||
}); |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,203 @@ |
|||
@{ |
|||
ViewData["Title"] = "运输配置管理"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
|
|||
<div class="lr-layout"> |
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap lr-layout-wrap-notitle"> |
|||
<div class="lr-layout-tool"> |
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<div id="datesearch" class="datetime"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" /> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_hint" class="fa fa-question-circle" style="font-size: 18px; color: orange;"></a> |
|||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> <span class="lrlg">查询</span></a> |
|||
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i> <span class="lrlg">重置</span></a> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
<div class="btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="btn_add" class="btn btn-default"><i class="fa fa-plus"></i> <span class="lrlg">新增</span></a> |
|||
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></a> |
|||
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-body" id="gridtable"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<script> |
|||
var selectedRow; |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
Keyword: '' |
|||
}; |
|||
var checkJustReturn = false; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initGrid(); |
|||
}, |
|||
bind: function () { |
|||
//日期查询 |
|||
$('.datetime').each(function () { |
|||
$(this).lrdate({ |
|||
//初始值 |
|||
dfdata: [ |
|||
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近1月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近3月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
], |
|||
// 初始索引值 |
|||
dfvalue: '-1', |
|||
selectfn: function (begin, end) { |
|||
curParam.StartTime = begin; |
|||
curParam.EndTime = end; |
|||
page.search(); |
|||
} |
|||
}); |
|||
}); |
|||
$('#btn_hint').popover({ |
|||
trigger: 'hover',//触发方式 |
|||
placement: 'right',//弹出框位置 |
|||
html: true,//添加data-html="true"之后,data-content里面就可以添加HTML代码 |
|||
//title: 'title', |
|||
content: " 查询时间:<br>创建时间<br>" + |
|||
" 查询关键字:<br>序号", |
|||
container: 'body' |
|||
}); |
|||
// 查询 |
|||
$('#btn_Search').on('click', function () { |
|||
curParam.Keyword = $('#txt_Keyword').val(); |
|||
page.search(); |
|||
}); |
|||
// 重置 |
|||
$('#btn_Reset').on('click', function () { |
|||
curParam = {}; |
|||
checkJustReturn = true; |
|||
$('#datesearch').find('.lr-search-date-btn-block:last').find('a').click(); |
|||
$('#txt_Keyword').val(''); |
|||
checkJustReturn = false; |
|||
page.search(); |
|||
}); |
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
//新增 |
|||
$('#btn_add').on('click', function () { |
|||
selectedRow = null; |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '新增', |
|||
url: top.$.rootUrl + '/AutoWeight/Ini/Form', |
|||
height: 500, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
}); |
|||
//编辑 |
|||
$('#btn_edit').on('click', function () { |
|||
selectedRow = $('#gridtable').jfGridGet('rowdata'); |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '编辑', |
|||
url: top.$.rootUrl + '/AutoWeight/Ini/Form', |
|||
height: 500, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
//删除 |
|||
$('#btn_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该项!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/AutoWeight/Ini/DeleteForm', { keyValue: keyValue }, function () { |
|||
page.refreshData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
initGrid: function () { |
|||
$('#gridtable').lrAuthorizeJfGrid({ |
|||
url: top.$.rootUrl + '/AutoWeight/Ini/GetPageList', |
|||
isPage: true, |
|||
mainId: 'Id', |
|||
rows: 30, |
|||
sidx: '',//排序字段只有在分页的情况下支持,多个字段用,隔开 |
|||
headData: [ |
|||
{ |
|||
label: "Id", name: "Id", ishide: true |
|||
}, |
|||
{ |
|||
label: "序号", name: "SerialNumber", width: 100, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "月计划数量", name: "PlanNumber", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "运单数量", name: "BillNumber", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "创建时间", name: "CreateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "更新时间", name: "UpdateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "备注", name: "Remark", width: 400, align: "left" |
|||
} |
|||
] |
|||
}); |
|||
page.search(); |
|||
}, |
|||
beforeSearch: function () { |
|||
if (checkJustReturn) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
search: function (param) { |
|||
if (page.beforeSearch()) { |
|||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(curParam) }); |
|||
} |
|||
}, |
|||
refreshData: function () { |
|||
page.search(); |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,85 @@ |
|||
@{ |
|||
ViewData["Title"] = "月计划表单"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
|
|||
<div id="form" class="lr-form-wrap" formAuth="yes"> |
|||
<input id="CompanyId" type="hidden" /> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">供应商<font face="宋体">*</font></div> |
|||
<div id="SupplierId" isvalid="yes" checkexpession="NotNull"></div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">料号<font face="宋体">*</font></div> |
|||
<input id="MaterialNo" type="text" class="form-control" placeholder="请输入料号" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">计划重量<font face="宋体">*</font></div> |
|||
<input id="PlanQty" type="text" class="form-control" placeholder="请输入计划重量" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">实到重量<font face="宋体">*</font></div> |
|||
<input id="ActQty" type="text" class="form-control" placeholder="请输入实到重量" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">备注</div> |
|||
<textarea id="Remark" class="form-control" style="height:90px;"></textarea> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var selectedRow = learun.frameTab.currentIframe().selectedRow; |
|||
var companyId = request('companyId'); |
|||
var keyValue = !!selectedRow ? selectedRow.Id : ''; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
}, |
|||
bind: function () { |
|||
// 供应商 |
|||
$('#SupplierId').lrselect({ |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
maxHeight: 180, |
|||
allowSearch: true |
|||
}); |
|||
}, |
|||
initData: function () { |
|||
if (!!selectedRow) { |
|||
$('#form').lrSetFormData(selectedRow); |
|||
} |
|||
else { |
|||
$('#CompanyId').val(companyId); |
|||
} |
|||
}, |
|||
validForm: function (code) { |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
save: function (processId, callback) { |
|||
var postData = $('body').lrGetFormData(); |
|||
postData.Id = processId; |
|||
$.lrSaveForm(top.$.rootUrl + '/AutoWeight/MonthPlan/SaveForm', postData, function (res) { |
|||
// 保存成功后才回调 |
|||
callback && callback(res); |
|||
}); |
|||
} |
|||
}; |
|||
// 保存数据 |
|||
window.acceptClick = function (callback) { |
|||
if (page.validForm()) { |
|||
page.save(keyValue, function (res) { |
|||
callback && callback(); |
|||
}); |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,350 @@ |
|||
@{ |
|||
ViewData["Title"] = "月计划管理"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
|
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">公司信息</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">月计划信息</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
|
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<div id="datesearch" class="datetime"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item" style="width: 160px;"> |
|||
<div id="supplier_select" style="border-radius: 4px;"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" /> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_hint" class="fa fa-question-circle" style="font-size: 18px; color: orange;"></a> |
|||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> <span class="lrlg">查询</span></a> |
|||
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i> <span class="lrlg">重置</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
<div class="btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="btn_add" class="btn btn-default"><i class="fa fa-plus"></i> <span class="lrlg">新增</span></a> |
|||
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></a> |
|||
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></a> |
|||
<a id="btn_more" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> |
|||
<i class="fa fa-reorder"></i> <span class="lrlg">更多</span><span class="caret"></span> |
|||
</a> |
|||
<ul class="dropdown-menu pull-right"> |
|||
<li id="btn_reCount"><a><i></i> <span class="lrlg">重计实重</span></a></li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body" id="gridtable"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<style> |
|||
.jumpG { |
|||
color: #1abc9c; |
|||
text-decoration: underline; |
|||
} |
|||
|
|||
.jumpG:hover { |
|||
color: #0b9277; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
.jumpR { |
|||
color: #e74c3c; |
|||
text-decoration: underline; |
|||
} |
|||
|
|||
.jumpR:hover { |
|||
color: #c0392b; |
|||
cursor: pointer; |
|||
} |
|||
</style> |
|||
|
|||
<script> |
|||
var selectedRow; |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
SupplierId: '', |
|||
Keyword: '' |
|||
}; |
|||
var checkJustReturn = false; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
}, |
|||
bind: function () { |
|||
// 供应商选择 |
|||
$('#supplier_select').lrselect({ |
|||
// 访问数据接口地址 |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
placeholder: '请选择供应商', |
|||
// 是否允许搜索 |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
curParam.SupplierId = (!!item && item.id > 0) ? item.id : ''; |
|||
page.search(); |
|||
} |
|||
}); |
|||
// 日期查询 |
|||
$('.datetime').each(function () { |
|||
$(this).lrdate({ |
|||
//初始值 |
|||
dfdata: [ |
|||
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近1月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近3月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
], |
|||
// 初始索引值 |
|||
dfvalue: '-1', |
|||
selectfn: function (begin, end) { |
|||
curParam.StartTime = begin; |
|||
curParam.EndTime = end; |
|||
page.search(); |
|||
} |
|||
}); |
|||
}); |
|||
// 提示 |
|||
$('#btn_hint').popover({ |
|||
trigger: 'hover',//触发方式 |
|||
placement: 'right',//弹出框位置 |
|||
html: true,//添加data-html="true"之后,data-content里面就可以添加HTML代码 |
|||
//title: 'title', |
|||
content: " 查询时间:<br>创建时间<br>" + |
|||
" 查询关键字:<br>序号、供应商名", |
|||
container: 'body' |
|||
}); |
|||
// 查询 |
|||
$('#btn_Search').on('click', function () { |
|||
curParam.Keyword = $('#txt_Keyword').val(); |
|||
page.search(); |
|||
}); |
|||
// 重置 |
|||
$('#btn_Reset').on('click', function () { |
|||
var tempId = curParam.CompanyId; |
|||
curParam = {}; |
|||
curParam.CompanyId = tempId; |
|||
checkJustReturn = true; |
|||
$('#datesearch').find('.lr-search-date-btn-block:last').find('a').click(); |
|||
$('#txt_Keyword').val(''); |
|||
checkJustReturn = false; |
|||
page.search(); |
|||
}); |
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
// 新增 |
|||
$('#btn_add').on('click', function () { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
selectedRow = null; |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '新增', |
|||
url: top.$.rootUrl + '/AutoWeight/MonthPlan/Form?companyId=' + curParam.CompanyId, |
|||
height: 500, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
}); |
|||
// 编辑 |
|||
$('#btn_edit').on('click', function () { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
selectedRow = $('#gridtable').jfGridGet('rowdata'); |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '编辑', |
|||
url: top.$.rootUrl + '/AutoWeight/MonthPlan/Form?companyId=' + curParam.CompanyId, |
|||
height: 500, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
// 删除 |
|||
$('#btn_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该项!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/AutoWeight/MonthPlan/DeleteForm', { keyValue: keyValue }, function () { |
|||
page.refreshData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
// 重计实重 |
|||
$('#btn_reCount').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否重计实到重量!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/AutoWeight/MonthPlan/ReCountWeight', { keyValue: keyValue }, function () { |
|||
page.refreshData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
page.search(); |
|||
}, |
|||
initGrid: function () { |
|||
$('#gridtable').lrAuthorizeJfGrid({ |
|||
url: top.$.rootUrl + '/AutoWeight/MonthPlan/GetPageList', |
|||
isPage: true, |
|||
mainId: 'Id', |
|||
rows: 30, |
|||
sidx: '',//排序字段只有在分页的情况下支持,多个字段用,隔开 |
|||
headData: [ |
|||
{ |
|||
label: "Id", name: "Id", ishide: true |
|||
}, |
|||
{ |
|||
label: "序号", name: "SerialNumber", width: 100, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "供应商名", name: "SupplierName", width: 150, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "料号", name: "MaterialNo", width: 150, align: "center" |
|||
}, |
|||
{ |
|||
label: "计划重量", name: "PlanQty", width: 60, align: "center" |
|||
}, |
|||
{ |
|||
label: "实到重量", name: "ActQty", width: 60, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
var elm = document.createElement("p"); |
|||
elm.innerHTML = row.ActQty; |
|||
elm.classList.add((row.PlanQty - row.ActQty) > 0 ? "jumpG" : "jumpR"); |
|||
elm.dataset.SerialNumber = row.SerialNumber; |
|||
elm.addEventListener("click", function (e) { |
|||
page.getModuleByCode("TransportBillModule", function (module) { |
|||
parent.document.getElementById(module.F_ModuleId).click(); |
|||
setTimeout(function () { |
|||
var curTab = learun.frameTab.currentIframe(); |
|||
curTab.focusSearch(curParam.CompanyId, e.target.dataset.SerialNumber); |
|||
}, 500); |
|||
}); |
|||
}); |
|||
return elm; |
|||
} |
|||
}, |
|||
{ |
|||
label: "创建者", name: "CreateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "创建时间", name: "CreateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "更新者", name: "UpdateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "更新时间", name: "UpdateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "备注", name: "Remark", width: 400, align: "left" |
|||
} |
|||
] |
|||
}); |
|||
}, |
|||
beforeSearch: function () { |
|||
if (checkJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
search: function (param) { |
|||
if (page.beforeSearch()) { |
|||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(curParam) }); |
|||
} |
|||
}, |
|||
refreshData: function () { |
|||
page.search(); |
|||
}, |
|||
getModuleByCode: function (code, callback) { |
|||
if (!!window.NeedModule) { |
|||
callback(window.NeedModule); |
|||
} else { |
|||
learun.httpAsyncGet2(top.$.rootUrl + '/LR_SystemModule/Module/GetModuleByCode', { code: code }, function (res) { |
|||
if (!!res.data && !!callback) { |
|||
window.NeedModule = res.data; |
|||
callback(window.NeedModule); |
|||
} else { |
|||
setTimeout(page.getModuleByCode(code, callback), 300); |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,110 @@ |
|||
@{ |
|||
ViewData["Title"] = "照片管理表单页面"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
|
|||
<div class="lr-form-wrap" id="form"> |
|||
<div class="col-xs-12 lr-form-item" data-table="aw_photo"> |
|||
<div class="lr-form-item-title">单行文本 <font face="宋体">*</font></div> |
|||
<input id="SerialNumber" type="text" class="form-control" placeholder="请输入单行文本" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item" data-table="aw_photo"> |
|||
<div class="lr-form-item-title">下拉框 <font face="宋体">*</font></div> |
|||
<div id="Type"></div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item" data-table="aw_photo"> |
|||
<div class="lr-form-item-title">单行文本 <font face="宋体">*</font></div> |
|||
<input id="Picture" type="text" class="form-control" placeholder="请输入单行文本" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item" data-table="aw_photo"> |
|||
<div class="lr-form-item-title">单行文本 <font face="宋体">*</font></div> |
|||
<input id="ResField1" type="text" class="form-control" placeholder="请输入单行文本" /> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
// 此表单要用到流程系统表单请确保主表主键为字串类型,默认流程是和表主键关联的 |
|||
var selectedRow = learun.frameTab.currentIframe().selectedRow; |
|||
var keyValue = !!selectedRow ? selectedRow.Id : ''; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
window.page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
}, |
|||
bind: function () { |
|||
$('#Type').lrDataItemSelect({ code: '' }) |
|||
|
|||
}, |
|||
initData: function () { |
|||
if (keyValue) { |
|||
// 获取数据赋值 |
|||
page.setFormData(keyValue) |
|||
} |
|||
}, |
|||
setAuthorize: function (data, isLook) {// 工作流表单生效,权限设置;data,模板配置表单权限数据 isLook 表示当前是只读模式 |
|||
}, |
|||
setFormData: function (processId, wfFormParam, userId, callback) { |
|||
// processId 普通版表单相当于 keyvalue;流程表单中是流程实例主键(默认关联主表主键) |
|||
// wfFormParam 流程表单有用,表单自定义参数 |
|||
// userId 流程表单有用,代发流程用户主键 |
|||
// 上述三个参数只在作为流程系统表单时有用 |
|||
$.lrSetForm(top.$.rootUrl + '/Controllers/PhotoApi/GetForm?keyValue=' + processId, function (data) { |
|||
if(data){ |
|||
for (var id in data) { |
|||
if (data[id].length) { |
|||
if(data[id].length > 0){// 表格赋值 |
|||
$('#' + id ).jfGridSet('refreshdata', data[id]); |
|||
} |
|||
} |
|||
else{ |
|||
if(id == 'aw_photo'){ |
|||
keyValue = data[id].SerialNumber |
|||
} |
|||
|
|||
$('[data-table="' + id + '"]').lrSetFormData(data[id]); |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
}); |
|||
}, |
|||
validForm: function (code) { // code 只在流程状态下起作用,代表流程当前执行的动作 |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
save: function (processId, callback) { |
|||
var postData = {} |
|||
var aw_photoEntity = $('[data-table="aw_photo"]').lrGetFormData() |
|||
aw_photoEntity.SerialNumber = processId |
|||
postData.strAw_photoEntity = JSON.stringify(aw_photoEntity) |
|||
var aw_transportautoEntity = $('[data-table="aw_transportauto"]').lrGetFormData() |
|||
postData.strAw_transportautoEntity = JSON.stringify(aw_transportautoEntity) |
|||
var aw_transportbillEntity = $('[data-table="aw_transportbill"]').lrGetFormData() |
|||
postData.strAw_transportbillEntity = JSON.stringify(aw_transportbillEntity) |
|||
var base_IniEntity = $('[data-table="base_Ini"]').lrGetFormData() |
|||
postData.strBase_IniEntity = JSON.stringify(base_IniEntity) |
|||
var aw_driverEntity = $('[data-table="aw_driver"]').lrGetFormData() |
|||
postData.strAw_driverEntity = JSON.stringify(aw_driverEntity) |
|||
|
|||
$.lrSaveForm(top.$.rootUrl + '/Controllers/PhotoApi/SaveForm?keyValue=' + keyValue, postData, function (res) { |
|||
// 保存成功后才回调 |
|||
callback && callback(res); |
|||
}); |
|||
} |
|||
}; |
|||
// 保存数据 |
|||
window.acceptClick = function (callback) { |
|||
if (page.validForm()) { |
|||
page.save(keyValue, function (res) { |
|||
callback && callback() |
|||
}) |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,162 @@ |
|||
@{ |
|||
ViewData["Title"] = "照片管理"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<div class="lr-layout lr-layout-query" id="lr_layout"> |
|||
|
|||
<div class="lr-layout-center" style="padding-top:60px;"> |
|||
<!--60 38--> |
|||
<div class="lr-layout-query-form" style="height:60px;"> |
|||
<div class="lr-form-wrap lr-rblock" id="queryForm"> |
|||
</div> |
|||
<div class="lr-layout-query-form-btns"> |
|||
<a id="lr_btn_qReset" class="btn btn-default"> 重 置</a> |
|||
<a id="lr_btn_qSearch" class="btn btn-primary"> 查 询</a> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title"> |
|||
<span class="lrlg">列表数据</span> |
|||
<div class="lr-layout-title-right"> |
|||
<div class=" btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
<a id="btn_add" class="btn btn-default"><i class="fa fa-plus"></i> <span class="lrlg">新增</span></a> |
|||
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></a> |
|||
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></a> |
|||
<a id="btn_print" class="btn btn-default"><i class="fa fa-print"></i> <span class="lrlg">打印</span></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-body" id="gridtable"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<script> |
|||
var bootstrap = function ($, learun) { |
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initCompont(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
}, |
|||
bind: function () { |
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
// 查询 |
|||
$('#lr_btn_qSearch').on('click', function () { |
|||
var queryData = $('#queryForm').lrGetFormData(); |
|||
page.search({ queryJson: JSON.stringify(queryData) }); |
|||
}); |
|||
// 重置 |
|||
$('#lr_btn_qReset').on('click', function () { |
|||
var queryData = $('#queryForm').lrGetFormData(); |
|||
for (var id in queryData) { |
|||
queryData[id] = ""; |
|||
} |
|||
$('#queryForm').lrSetFormData(queryData, true); |
|||
}); |
|||
//新增 |
|||
$('#btn_add').on('click', function () { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '新增', |
|||
url: top.$.rootUrl + '/Controllers/PhotoApi/Form', |
|||
height: 500, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(refreshGird); |
|||
} |
|||
}); |
|||
}); |
|||
//编辑 |
|||
$('#btn_edit').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('SerialNumber'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '编辑', |
|||
url: top.$.rootUrl + '/Controllers/PhotoApi/Form?keyValue='+keyValue, |
|||
height: 500, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(refreshGird); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
//删除 |
|||
$('#btn_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('SerialNumber'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该项!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/Controllers/PhotoApi/DeleteForm', { keyValue: keyValue }, function () { |
|||
refreshGird(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
//打印 |
|||
$('#btn_print').on('click', function () { |
|||
$("#gridtable").jqprintTable({ title: '打印列表' }); |
|||
}); |
|||
|
|||
}, |
|||
initCompont: function () { |
|||
|
|||
}, |
|||
initTree: function () { |
|||
|
|||
}, |
|||
initGrid: function () { |
|||
$('#gridtable').jfGrid({ |
|||
url: top.$.rootUrl + '/Controllers/PhotoApi/GetPageList', |
|||
isPage: true, |
|||
sidx:'',//排序字段只有在分页的情况下支持,多个字段用,隔开 |
|||
reloadSelected: true, |
|||
mainId: 'SerialNumber', |
|||
headData: [ |
|||
{ |
|||
label: "单行文本", name: "SerialNumber", width: 100, align: "left" |
|||
}, |
|||
{ |
|||
label: "下拉框", name: "Type", width: 100, align: "left" |
|||
, formatterAsync: function (callback,value, row, op, $cell) { |
|||
learun.clientdata.getAsync('dataItem', { |
|||
key: value, |
|||
code: '', |
|||
callback: function (_data) { |
|||
callback(_data.F_ItemName); |
|||
} |
|||
}); |
|||
} |
|||
}, |
|||
{ |
|||
label: "单行文本", name: "Picture", width: 100, align: "left" |
|||
}, |
|||
{ |
|||
label: "单行文本", name: "ResField1", width: 100, align: "left" |
|||
}, |
|||
] |
|||
}); |
|||
|
|||
page.search(); |
|||
}, |
|||
search: function (param) { |
|||
param = param || {}; |
|||
|
|||
$('#gridtable').jfGridSet('reload', param); |
|||
} |
|||
}; |
|||
// 保存数据后回调刷新 |
|||
window.refreshGird = function () { |
|||
page.search(); |
|||
} |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,261 @@ |
|||
@{ |
|||
ViewData["Title"] = "供应商报表"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<script src="~/lib/echarts/echarts.min.js"></script> |
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">运单日达标率散点图</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">运单日达标率散点图</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
|
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<input type="text" id="datesearch" placeholder="请选择时间"> |
|||
</div> |
|||
<div class="lr-layout-tool-item" style="width: 160px;"> |
|||
<div id="supplier_select" style="border-radius: 4px;"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_create" class="btn btn-primary btn-sm"><span class="lrlg">生成</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body"> |
|||
<div id="gridZone"></div> |
|||
<div id="chartZone" style="height: 100%"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
SupplierId: '' |
|||
}; |
|||
var createJustReturn = false; |
|||
var curChart; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
page.initChart(); |
|||
}, |
|||
bind: function () { |
|||
// 年月选择器 |
|||
laydate.render({ |
|||
elem: '#datesearch', |
|||
type: 'date', |
|||
//value: new Date(), |
|||
btns: ['now', 'confirm'], |
|||
done: function (value, date, endDate) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
var clickTime = new Date(new Date(value).format("yyyy/MM/dd")); |
|||
curParam.StartTime = new Date(clickTime.valueOf()); |
|||
curParam.EndTime = new Date(new Date(clickTime.setDate(clickTime.getDate() + 1)).format("yyyy/MM/dd")); |
|||
curParam.StartTime = curParam.StartTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
curParam.EndTime = curParam.EndTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
} |
|||
}); |
|||
|
|||
// 供应商选择 |
|||
$('#supplier_select').lrselect({ |
|||
// 访问数据接口地址 |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
placeholder: '请选择供应商', |
|||
// 是否允许搜索 |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
curParam.SupplierId = (!!item && item.id > 0) ? item.id : ''; |
|||
} |
|||
}); |
|||
|
|||
// 生成 |
|||
$('#btn_create').on('click', function () { |
|||
page.createReport(); |
|||
}); |
|||
|
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
}, |
|||
initGrid: function () { |
|||
}, |
|||
initChart: function () { |
|||
curChart = echarts.init(document.getElementById('chartZone')); |
|||
// 显示标题,图例和空的坐标轴 |
|||
curChart.setOption({ |
|||
title: { |
|||
text: '运单日达标率散点图', |
|||
left: "center" |
|||
}, |
|||
xAxis: {}, |
|||
yAxis: {}, |
|||
visualMap: { |
|||
min: 0, |
|||
max: 110, |
|||
orient: 'vertical', |
|||
right: 10, |
|||
top: 'center', |
|||
text: ['高', '低'], |
|||
inRange: { |
|||
color: ['#00FF00', '#FFFF00', '#FF0000'] |
|||
} |
|||
}, |
|||
series: [{ |
|||
name: '达标率', |
|||
type: 'scatter', |
|||
data: [] |
|||
}], |
|||
tooltip: { |
|||
trigger: 'item', |
|||
}, |
|||
toolbox: { |
|||
show: true, |
|||
feature: { |
|||
saveAsImage: {} |
|||
} |
|||
} |
|||
}); |
|||
}, |
|||
beforeCreate: function () { |
|||
if (createJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
if (!curParam.StartTime || !curParam.EndTime) { |
|||
learun.alert.warning('请选择时间!'); |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
|
|||
return true; |
|||
}, |
|||
createReport: function (param) { |
|||
if (!page.beforeCreate()) |
|||
return; |
|||
|
|||
learun.httpAsyncGet2(top.$.rootUrl + '/AutoWeight/Report/GetBillRateListByDay', { queryJson: JSON.stringify(curParam) }, function (res) { |
|||
if (res.code !== 200 || !res.data) |
|||
return; |
|||
var data = res.data; |
|||
|
|||
// 填入数据 |
|||
curChart.setOption({ |
|||
title: { |
|||
subtext: new Date(curParam.StartTime).format("yyyy/MM/dd") + " - " + $('#supplier_select').lrselectGetEx().text |
|||
}, |
|||
xAxis: { |
|||
type: 'time', |
|||
min: curParam.StartTime, |
|||
max: curParam.EndTime, |
|||
splitNumber: 24, |
|||
axisLabel: {// 格式化数据 |
|||
formatter: function (value, index) { |
|||
var date = new Date(value); |
|||
return date.format("hh:mm"); |
|||
} |
|||
} |
|||
}, |
|||
//xAxis: { type: 'category', data: page.generateArray(1, page.getDaysOfMonth(new Date(curParam.StartTime))) }, |
|||
yAxis: { |
|||
min: 0, |
|||
max: 110, |
|||
interval: 10, |
|||
minInterval: 10, |
|||
maxInterval: 10, |
|||
axisLabel: { |
|||
formatter: '{value} %' |
|||
} |
|||
}, |
|||
series: [{ |
|||
// 根据名字对应到相应的系列 |
|||
name: '达标率', |
|||
data: data.rateList |
|||
}] |
|||
}); |
|||
curChart.resize(); |
|||
}); |
|||
}, |
|||
refreshData: function () { |
|||
page.createReport(); |
|||
}, |
|||
getDays: function () { |
|||
var date = new Date(); |
|||
//将当前月份加1,下移到下一个月 |
|||
date.setMonth(date.getMonth() + 1); |
|||
//将当前的日期置为0, |
|||
date.setDate(0); |
|||
//再获取天数即取上个月的最后一天的天数 |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
getDaysOfMonth: function (curDate) { |
|||
var date = new Date(curDate.getFullYear(), curDate.getMonth() + 1, 0); |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
generateArray: function (start, end) { |
|||
var arr = new Array(end - start + 1); |
|||
for (var i = 0; i < arr.length; i++) { |
|||
arr[i] = i + start; |
|||
} |
|||
return arr; |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,258 @@ |
|||
@{ |
|||
ViewData["Title"] = "供应商报表"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<script src="~/lib/echarts/echarts.min.js"></script> |
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">运单月达标率散点图</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">运单月达标率散点图</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
|
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<input type="text" id="datesearch" placeholder="请选择时间"> |
|||
</div> |
|||
<div class="lr-layout-tool-item" style="width: 160px;"> |
|||
<div id="supplier_select" style="border-radius: 4px;"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_create" class="btn btn-primary btn-sm"><span class="lrlg">生成</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body"> |
|||
<div id="gridZone"></div> |
|||
<div id="chartZone" style="height: 100%"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
SupplierId: '' |
|||
}; |
|||
var createJustReturn = false; |
|||
var curChart; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
page.initChart(); |
|||
}, |
|||
bind: function () { |
|||
// 年月选择器 |
|||
laydate.render({ |
|||
elem: '#datesearch', |
|||
type: 'month', |
|||
//value: new Date(), |
|||
btns: ['now', 'confirm'], |
|||
done: function (value, date, endDate) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
var clickTime = new Date(new Date(value).format("yyyy/MM/dd")); |
|||
curParam.StartTime = new Date(clickTime.valueOf()); |
|||
curParam.EndTime = new Date(new Date(clickTime.setMonth(clickTime.getMonth() + 1)).format("yyyy/MM/dd")); |
|||
curParam.StartTime = curParam.StartTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
curParam.EndTime = curParam.EndTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
} |
|||
}); |
|||
|
|||
// 供应商选择 |
|||
$('#supplier_select').lrselect({ |
|||
// 访问数据接口地址 |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
placeholder: '请选择供应商', |
|||
// 是否允许搜索 |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
curParam.SupplierId = (!!item && item.id > 0) ? item.id : ''; |
|||
} |
|||
}); |
|||
|
|||
// 生成 |
|||
$('#btn_create').on('click', function () { |
|||
page.createReport(); |
|||
}); |
|||
|
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
}, |
|||
initGrid: function () { |
|||
}, |
|||
initChart: function () { |
|||
curChart = echarts.init(document.getElementById('chartZone')); |
|||
// 显示标题,图例和空的坐标轴 |
|||
curChart.setOption({ |
|||
title: { |
|||
text: '运单月达标率散点图', |
|||
left: "center" |
|||
}, |
|||
xAxis: {}, |
|||
yAxis: {}, |
|||
//xAxis: { type: 'category', data: Array.from(Array(page.getDays()), (v, k) => k) }, |
|||
visualMap: { |
|||
min: 0, |
|||
max: 110, |
|||
orient: 'vertical', |
|||
right: 10, |
|||
top: 'center', |
|||
text: ['高', '低'], |
|||
calculable: true, |
|||
inRange: { |
|||
color: ['#00FF00', '#FFFF00', '#FF0000'] |
|||
} |
|||
}, |
|||
series: [{ |
|||
name: '达标率', |
|||
type: 'scatter', |
|||
data: [] |
|||
}], |
|||
tooltip: { |
|||
trigger: 'item', |
|||
}, |
|||
toolbox: { |
|||
show: true, |
|||
feature: { |
|||
saveAsImage: {} |
|||
} |
|||
} |
|||
}); |
|||
}, |
|||
beforeCreate: function () { |
|||
if (createJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
if (!curParam.StartTime || !curParam.EndTime) { |
|||
learun.alert.warning('请选择时间!'); |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
|
|||
return true; |
|||
}, |
|||
createReport: function (param) { |
|||
if (!page.beforeCreate()) |
|||
return; |
|||
|
|||
learun.httpAsyncGet2(top.$.rootUrl + '/AutoWeight/Report/GetBillRateListByMonth', { queryJson: JSON.stringify(curParam) }, function (res) { |
|||
if (res.code !== 200 || !res.data) |
|||
return; |
|||
var data = res.data; |
|||
// 填入数据 |
|||
curChart.setOption({ |
|||
title: { |
|||
subtext: new Date(curParam.StartTime).format("yyyy/MM") + " - " + $('#supplier_select').lrselectGetEx().text |
|||
}, |
|||
xAxis: { |
|||
//xAxis: { type: 'category', data: page.generateArray(1, page.getDaysOfMonth(new Date(curParam.StartTime))) }, |
|||
min: 0, |
|||
max: page.getDaysOfMonth(new Date(curParam.StartTime)), |
|||
interval: 1, |
|||
minInterval: 1, |
|||
maxInterval: 1 |
|||
}, |
|||
//xAxis: { type: 'category', data: page.generateArray(1, page.getDaysOfMonth(new Date(curParam.StartTime))) }, |
|||
yAxis: { |
|||
min: 0, |
|||
max: 110, |
|||
interval: 10, |
|||
minInterval: 10, |
|||
maxInterval: 10, |
|||
axisLabel: { |
|||
formatter: '{value} %' |
|||
} |
|||
}, |
|||
series: [{ |
|||
// 根据名字对应到相应的系列 |
|||
name: '达标率', |
|||
data: data.rateList |
|||
}] |
|||
}); |
|||
curChart.resize(); |
|||
}); |
|||
}, |
|||
refreshData: function () { |
|||
page.createReport(); |
|||
}, |
|||
getDays: function () { |
|||
var date = new Date(); |
|||
//将当前月份加1,下移到下一个月 |
|||
date.setMonth(date.getMonth() + 1); |
|||
//将当前的日期置为0, |
|||
date.setDate(0); |
|||
//再获取天数即取上个月的最后一天的天数 |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
getDaysOfMonth: function (curDate) { |
|||
var date = new Date(curDate.getFullYear(), curDate.getMonth() + 1, 0); |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
generateArray: function (start, end) { |
|||
var arr = new Array(end - start + 1); |
|||
for (var i = 0; i < arr.length; i++) { |
|||
arr[i] = i + start; |
|||
} |
|||
return arr; |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,252 @@ |
|||
@{ |
|||
ViewData["Title"] = "供应商报表"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<script src="~/lib/echarts/echarts.min.js"></script> |
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">运单月运输量折线图</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">运单月运输量折线图</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
|
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<input type="text" id="datesearch" placeholder="请选择时间"> |
|||
</div> |
|||
<div class="lr-layout-tool-item" style="width: 160px;"> |
|||
<div id="supplier_select" style="border-radius: 4px;"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_create" class="btn btn-primary btn-sm"><span class="lrlg">生成</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body"> |
|||
<div id="gridZone"></div> |
|||
<div id="chartZone" style="height: 100%"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
SupplierId: '' |
|||
}; |
|||
var createJustReturn = false; |
|||
var curChart; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
page.initChart(); |
|||
}, |
|||
bind: function () { |
|||
// 年月选择器 |
|||
laydate.render({ |
|||
elem: '#datesearch', |
|||
type: 'month', |
|||
//value: new Date(), |
|||
btns: ['now', 'confirm'], |
|||
done: function (value, date, endDate) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
var clickTime = new Date(new Date(value).format("yyyy/MM/dd")); |
|||
curParam.StartTime = new Date(clickTime.valueOf()); |
|||
curParam.EndTime = new Date(new Date(clickTime.setMonth(clickTime.getMonth() + 1)).format("yyyy/MM/dd")); |
|||
curParam.StartTime = curParam.StartTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
curParam.EndTime = curParam.EndTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
} |
|||
}); |
|||
|
|||
// 供应商选择 |
|||
$('#supplier_select').lrselect({ |
|||
// 访问数据接口地址 |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
placeholder: '请选择供应商', |
|||
// 是否允许搜索 |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
curParam.SupplierId = (!!item && item.id > 0) ? item.id : ''; |
|||
} |
|||
}); |
|||
|
|||
// 生成 |
|||
$('#btn_create').on('click', function () { |
|||
page.createReport(); |
|||
}); |
|||
|
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
}, |
|||
initGrid: function () { |
|||
}, |
|||
initChart: function () { |
|||
curChart = echarts.init(document.getElementById('chartZone')); |
|||
// 显示标题,图例和空的坐标轴 |
|||
curChart.setOption({ |
|||
title: { |
|||
text: '运单月运输量折线图', |
|||
left: "center" |
|||
}, |
|||
xAxis: {}, |
|||
yAxis: {}, |
|||
tooltip: { |
|||
trigger: 'axis', |
|||
}, |
|||
series: [{ |
|||
type: 'line' |
|||
}] |
|||
}); |
|||
}, |
|||
beforeCreate: function () { |
|||
if (createJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
if (!curParam.StartTime || !curParam.EndTime) { |
|||
learun.alert.warning('请选择时间!'); |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
|
|||
return true; |
|||
}, |
|||
createReport: function (param) { |
|||
if (!page.beforeCreate()) |
|||
return; |
|||
|
|||
learun.httpAsyncGet2(top.$.rootUrl + '/AutoWeight/Report/GetBillVolumeListByMonth', { queryJson: JSON.stringify(curParam) }, function (res) { |
|||
if (res.code !== 200 || !res.data) |
|||
return; |
|||
var data = res.data; |
|||
console.log(data); |
|||
// 填入数据 |
|||
curChart.setOption({ |
|||
title: { |
|||
subtext: new Date(curParam.StartTime).format("yyyy/MM") + " - " + $('#supplier_select').lrselectGetEx().text |
|||
}, |
|||
xAxis: { type: 'category', data: page.generateMonthDaysArray(new Date(curParam.StartTime)) }, |
|||
axisLabel: { |
|||
formatter: function (value, idx) { |
|||
var date = new Date(value); |
|||
return date.getDate(); |
|||
} |
|||
}, |
|||
yAxis: { |
|||
//interval: 10, |
|||
//minInterval: 10, |
|||
//maxInterval: 30, |
|||
axisLabel: { |
|||
formatter: '{value} 吨' |
|||
} |
|||
}, |
|||
series: [{ |
|||
data: data.volumeList |
|||
}], |
|||
tooltip: { |
|||
trigger: 'axis', |
|||
}, |
|||
toolbox: { |
|||
show: true, |
|||
feature: { |
|||
saveAsImage: {} |
|||
} |
|||
} |
|||
}); |
|||
curChart.resize(); |
|||
}); |
|||
}, |
|||
refreshData: function () { |
|||
page.createReport(); |
|||
}, |
|||
getDays: function () { |
|||
let date = new Date(); |
|||
//将当前月份加1,下移到下一个月 |
|||
date.setMonth(date.getMonth() + 1); |
|||
//将当前的日期置为0, |
|||
date.setDate(0); |
|||
//再获取天数即取上个月的最后一天的天数 |
|||
let days = date.getDate(); |
|||
return days; |
|||
}, |
|||
getDaysOfMonth: function (curDate) { |
|||
let date = new Date(curDate.getFullYear(), curDate.getMonth() + 1, 0); |
|||
let days = date.getDate(); |
|||
return days; |
|||
}, |
|||
generateArray: function (start, end) { |
|||
let arr = new Array(end - start + 1); |
|||
for (let i = 0; i < arr.length; i++) { |
|||
arr[i] = i + start; |
|||
} |
|||
return arr; |
|||
}, |
|||
generateMonthDaysArray: function (date) { |
|||
let year = date.getFullYear(); |
|||
let month = date.getMonth(); |
|||
let days = page.getDaysOfMonth(date); |
|||
let arr = new Array(); |
|||
for(let day=1;day<=days;day++){ |
|||
let curDate = new Date(year,month,day); |
|||
arr.push(curDate.format("yyyy-MM-dd")); |
|||
} |
|||
return arr; |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,247 @@ |
|||
@{ |
|||
ViewData["Title"] = "供应商报表"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<script src="~/lib/echarts/echarts.min.js"></script> |
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">运单日运输量散点图</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">运单日运输量散点图</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
|
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<input type="text" id="datesearch" placeholder="请选择时间"> |
|||
</div> |
|||
<div class="lr-layout-tool-item" style="width: 160px;"> |
|||
<div id="supplier_select" style="border-radius: 4px;"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_create" class="btn btn-primary btn-sm"><span class="lrlg">生成</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body"> |
|||
<div id="gridZone"></div> |
|||
<div id="chartZone" style="height: 100%"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
SupplierId: '' |
|||
}; |
|||
var createJustReturn = false; |
|||
var curChart; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
page.initChart(); |
|||
}, |
|||
bind: function () { |
|||
// 年月选择器 |
|||
laydate.render({ |
|||
elem: '#datesearch', |
|||
type: 'date', |
|||
//value: new Date(), |
|||
btns: ['now', 'confirm'], |
|||
done: function (value, date, endDate) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
var clickTime = new Date(new Date(value).format("yyyy/MM/dd")); |
|||
curParam.StartTime = new Date(clickTime.valueOf()); |
|||
curParam.EndTime = new Date(new Date(clickTime.setDate(clickTime.getDate() + 1)).format("yyyy/MM/dd")); |
|||
curParam.StartTime = curParam.StartTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
curParam.EndTime = curParam.EndTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
} |
|||
}); |
|||
|
|||
// 供应商选择 |
|||
$('#supplier_select').lrselect({ |
|||
// 访问数据接口地址 |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
placeholder: '请选择供应商', |
|||
// 是否允许搜索 |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
curParam.SupplierId = (!!item && item.id > 0) ? item.id : ''; |
|||
} |
|||
}); |
|||
|
|||
// 生成 |
|||
$('#btn_create').on('click', function () { |
|||
page.createReport(); |
|||
}); |
|||
|
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
}, |
|||
initGrid: function () { |
|||
}, |
|||
initChart: function () { |
|||
curChart = echarts.init(document.getElementById('chartZone')); |
|||
// 显示标题,图例和空的坐标轴 |
|||
curChart.setOption({ |
|||
title: { |
|||
text: '运单日运输量散点图', |
|||
left: "center" |
|||
}, |
|||
xAxis: {}, |
|||
yAxis: {}, |
|||
series: [{ |
|||
name: '运输量', |
|||
type: 'scatter', |
|||
data: [] |
|||
}], |
|||
tooltip: { |
|||
trigger: 'item', |
|||
}, |
|||
toolbox: { |
|||
show: true, |
|||
feature: { |
|||
saveAsImage: {} |
|||
} |
|||
} |
|||
}); |
|||
}, |
|||
beforeCreate: function () { |
|||
if (createJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
if (!curParam.StartTime || !curParam.EndTime) { |
|||
learun.alert.warning('请选择时间!'); |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
|
|||
return true; |
|||
}, |
|||
createReport: function (param) { |
|||
if (!page.beforeCreate()) |
|||
return; |
|||
|
|||
learun.httpAsyncGet2(top.$.rootUrl + '/AutoWeight/Report/GetBillVolumeListByDay', { queryJson: JSON.stringify(curParam) }, function (res) { |
|||
if (res.code !== 200 || !res.data) |
|||
return; |
|||
var data = res.data; |
|||
// 填入数据 |
|||
curChart.setOption({ |
|||
title: { |
|||
subtext: new Date(curParam.StartTime).format("yyyy/MM/dd")+" - " + $('#supplier_select').lrselectGetEx().text |
|||
}, |
|||
//xAxis: { min: 0, max: page.getDaysOfMonth(new Date(curParam.StartTime)), minInterval: 1, maxInterval: 1 }, |
|||
xAxis: { |
|||
type: 'time', |
|||
min: curParam.StartTime, |
|||
max: curParam.EndTime, |
|||
splitNumber: 24, |
|||
axisLabel: {// 格式化数据 |
|||
formatter: function (value, index) { |
|||
var date = new Date(value); |
|||
return date.format("hh:mm"); |
|||
} |
|||
} |
|||
}, |
|||
yAxis: { |
|||
//interval: 10, |
|||
minInterval: 10, |
|||
maxInterval: 30, |
|||
axisLabel: { |
|||
formatter: '{value} 吨' |
|||
} |
|||
}, |
|||
series: [{ |
|||
// 根据名字对应到相应的系列 |
|||
name: '运输量', |
|||
data: data.volumeList |
|||
}] |
|||
}); |
|||
curChart.resize(); |
|||
}); |
|||
}, |
|||
refreshData: function () { |
|||
page.createReport(); |
|||
}, |
|||
getDays: function () { |
|||
var date = new Date(); |
|||
//将当前月份加1,下移到下一个月 |
|||
date.setMonth(date.getMonth() + 1); |
|||
//将当前的日期置为0, |
|||
date.setDate(0); |
|||
//再获取天数即取上个月的最后一天的天数 |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
getDaysOfMonth: function (curDate) { |
|||
var date = new Date(curDate.getFullYear(), curDate.getMonth() + 1, 0); |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
generateArray: function (start, end) { |
|||
var arr = new Array(end - start + 1); |
|||
for (var i = 0; i < arr.length; i++) { |
|||
arr[i] = i + start; |
|||
} |
|||
return arr; |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,268 @@ |
|||
@{ |
|||
ViewData["Title"] = "供应商报表"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<link href="~/lib/layui/css/layui.css" rel="stylesheet" /> |
|||
<script src="~/lib/echarts/echarts.min.js"></script> |
|||
<script src="~/lib/layui/layui.js"></script> |
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">月计划完成率饼状图</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">月计划完成率饼状图</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
|
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<input type="text" id="datesearch" placeholder="请选择时间"> |
|||
</div> |
|||
<div class="lr-layout-tool-item" style="width: 160px;"> |
|||
<div id="supplier_select" style="border-radius: 4px;"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_create" class="btn btn-primary btn-sm"><span class="lrlg">生成</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body"> |
|||
<div id="gridZone"></div> |
|||
<div id="chartZone" style="height: 100%; overflow-y: auto;"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
SupplierId: '' |
|||
}; |
|||
var createJustReturn = false; |
|||
|
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
}, |
|||
bind: function () { |
|||
// 年月选择器 |
|||
laydate.render({ |
|||
elem: '#datesearch', |
|||
type: 'month', |
|||
btns: ['now', 'confirm'], |
|||
//value: new Date(), |
|||
done: function (value, date, endDate) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
var clickTime = new Date(new Date(value).format("yyyy/MM/dd")); |
|||
curParam.StartTime = new Date(clickTime.valueOf()); |
|||
curParam.EndTime = new Date(new Date(clickTime.setMonth(clickTime.getMonth() + 1)).format("yyyy/MM/dd")); |
|||
curParam.StartTime = curParam.StartTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
curParam.EndTime = curParam.EndTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
} |
|||
}); |
|||
|
|||
//供应商选择 |
|||
$('#supplier_select').lrselect({ |
|||
// 访问数据接口地址 |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
placeholder: '请选择供应商', |
|||
// 是否允许搜索 |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
curParam.SupplierId = (!!item && item.id > 0) ? item.id : ''; |
|||
} |
|||
}); |
|||
|
|||
// 生成 |
|||
$('#btn_create').on('click', function () { |
|||
page.createReport(); |
|||
}); |
|||
|
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
//learun.httpAsyncGet(top.$.rootUrl + '/UserCenter/GetUserInfo', function (res) { |
|||
// if (res.code !== 200 || !res.data) |
|||
// return; |
|||
// var baseInfo = res.data.baseinfo; |
|||
// var companyId = baseInfo.F_CompanyId || "207fa1a9-160c-4943-a89b-8fa4db0547ce"; |
|||
// $('#companyTree').lrtreeSet("setValue", companyId); |
|||
// $('#companyTree').lrtreeSet("clickFirst"); |
|||
//}); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
}, |
|||
initGrid: function () { |
|||
}, |
|||
initChart: function () { |
|||
}, |
|||
beforeCreate: function () { |
|||
if (createJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
if (!curParam.StartTime || !curParam.EndTime) { |
|||
learun.alert.warning('请选择时间!'); |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
|
|||
return true; |
|||
}, |
|||
createReport: function (param) { |
|||
if (!page.beforeCreate()) |
|||
return; |
|||
|
|||
learun.httpAsyncGet2(top.$.rootUrl + '/AutoWeight/Report/GetStatisticsDataByDay', { queryJson: JSON.stringify(curParam) }, function (res) { |
|||
if (res.code !== 200 || !res.data) |
|||
return; |
|||
var data = res.data; |
|||
var planInfoList = data.planInfoList; |
|||
var testDataList = []; |
|||
for (var i = 0; i < planInfoList.length; i++) { |
|||
testDataList.push(planInfoList[i]); |
|||
} |
|||
|
|||
layui.use('table', function () { |
|||
layui.table.render({ |
|||
elem: '#gridZone', |
|||
cols: [[ |
|||
{ field: 'SerialNumber', title: '月计划序号', align: 'center', sort: true }, |
|||
{ field: 'MaterialNo', title: '料号', align: 'center' }, |
|||
{ field: 'PlanQty', title: '计划重量', align: 'center', templet: function (d) { return d.PlanQty + "吨"; } }, |
|||
{ field: 'BillWeightSum', title: '运单总单重', align: 'center', templet: function (d) { return d.BillWeightSum + "吨"; } }, |
|||
{ field: 'NetWeightSum', title: '运单总净重', align: 'center', templet: function (d) { return d.NetWeightSum + "吨"; } }, |
|||
{ field: 'BillCount', title: '运单单数', align: 'center', templet: function (d) { return d.BillCount + "单"; } }, |
|||
{ title: '差额', align: 'center', templet: function (d) { return d.PlanQty - d.NetWeightSum + "吨"; } }, |
|||
{ title: '达标率', align: 'center', templet: function (d) { return ((d.NetWeightSum / d.PlanQty) * 100).toFixed(2) + "%"; } }, |
|||
]], |
|||
data: testDataList, |
|||
even: true |
|||
}); |
|||
}); |
|||
|
|||
var curChartZone = document.getElementById("chartZone"); |
|||
curChartZone.innerHTML = ""; |
|||
for (var i = 0; i < planInfoList.length; i++) { |
|||
var planInfo = planInfoList[i]; |
|||
var curChartDiv = document.createElement("div"); |
|||
curChartDiv.style.cssText = "width:400px;height:400px;display:inline-block;float:left; "; |
|||
curChartZone.appendChild(curChartDiv); |
|||
var curChart = echarts.init(curChartDiv); |
|||
// 填入数据 |
|||
curChart.setOption({ |
|||
title: { |
|||
text: '月计划完成率饼状图', |
|||
subtext: planInfo.SerialNumber + " - " + planInfo.SupplierName + " - " + planInfo.MaterialNo, |
|||
left: "center" |
|||
}, |
|||
legend: { |
|||
orient: 'vertical', |
|||
left: 'left' |
|||
}, |
|||
tooltip: { |
|||
trigger: 'item', |
|||
formatter: '{a} <br/>{b} : {c}吨 ({d}%)' |
|||
}, |
|||
toolbox: { |
|||
show: true, |
|||
feature: { |
|||
saveAsImage: {} |
|||
} |
|||
}, |
|||
series: [{ |
|||
name: '完成率', |
|||
type: 'pie', |
|||
data: [ |
|||
{ |
|||
name: '已完成', |
|||
value: planInfo.NetWeightSum |
|||
}, |
|||
{ |
|||
name: '未完成', |
|||
value: planInfo.PlanQty - planInfo.NetWeightSum |
|||
} |
|||
] |
|||
}] |
|||
}); |
|||
curChart.resize(); |
|||
} |
|||
}); |
|||
}, |
|||
refreshData: function () { |
|||
page.createReport(); |
|||
}, |
|||
getDays: function () { |
|||
var date = new Date(); |
|||
//将当前月份加1,下移到下一个月 |
|||
date.setMonth(date.getMonth() + 1); |
|||
//将当前的日期置为0, |
|||
date.setDate(0); |
|||
//再获取天数即取上个月的最后一天的天数 |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
getDaysOfMonth: function (curDate) { |
|||
var date = new Date(curDate.getFullYear(), curDate.getMonth() + 1, 0); |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
generateArray: function (start, end) { |
|||
var arr = new Array(end - start + 1); |
|||
for (var i = 0; i < arr.length; i++) { |
|||
arr[i] = i + start; |
|||
} |
|||
return arr; |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,394 @@ |
|||
@{ |
|||
ViewData["Title"] = "供应商报表"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<link href="~/lib/layui/css/layui.css" rel="stylesheet" /> |
|||
<script src="~/lib/echarts/echarts.min.js"></script> |
|||
<script src="~/lib/layui/layui.js"></script> |
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">日统计报表</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">日统计报表</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
|
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<input type="text" id="datesearch" placeholder="请选择时间"> |
|||
</div> |
|||
<div class="lr-layout-tool-item" style="width: 160px;"> |
|||
<div id="supplier_select" style="border-radius: 4px;"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_create" class="btn btn-primary btn-sm"><span class="lrlg">生成</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body"> |
|||
<div id="gridZone" lay-filter="test"></div> |
|||
@*<div id="gridZone" style="height: 100%;"></div>*@ |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
SupplierId: '' |
|||
}; |
|||
var createJustReturn = false; |
|||
|
|||
layui.config({ |
|||
base: '/lib/layui/layui_exts/', |
|||
}).extend({ |
|||
excel: 'excel', |
|||
}); |
|||
|
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
}, |
|||
bind: function () { |
|||
// 年月选择器 |
|||
laydate.render({ |
|||
elem: '#datesearch', |
|||
type: 'date', |
|||
btns: ['now', 'confirm'], |
|||
//value: new Date(), |
|||
done: function (value, date, endDate) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
var clickTime = new Date(new Date(value).format("yyyy/MM/dd")); |
|||
curParam.StartTime = new Date(clickTime.valueOf()); |
|||
curParam.EndTime = new Date(new Date(clickTime.setDate(clickTime.getDate() + 1)).format("yyyy/MM/dd")); |
|||
curParam.StartTime = curParam.StartTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
curParam.EndTime = curParam.EndTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
} |
|||
}); |
|||
|
|||
//供应商选择 |
|||
$('#supplier_select').lrselect({ |
|||
// 访问数据接口地址 |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
placeholder: '请选择供应商', |
|||
// 是否允许搜索 |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
curParam.SupplierId = (!!item && item.id > 0) ? item.id : ''; |
|||
} |
|||
}); |
|||
|
|||
// 生成 |
|||
$('#btn_create').on('click', function () { |
|||
page.createReport(); |
|||
}); |
|||
|
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
//learun.httpAsyncGet(top.$.rootUrl + '/UserCenter/GetUserInfo', function (res) { |
|||
// if (res.code !== 200 || !res.data) |
|||
// return; |
|||
// var baseInfo = res.data.baseinfo; |
|||
// var companyId = baseInfo.F_CompanyId || "207fa1a9-160c-4943-a89b-8fa4db0547ce"; |
|||
// $('#companyTree').lrtreeSet("setValue", companyId); |
|||
// $('#companyTree').lrtreeSet("clickFirst"); |
|||
//}); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
}, |
|||
initGrid: function () { |
|||
}, |
|||
initChart: function () { |
|||
}, |
|||
beforeCreate: function () { |
|||
if (createJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
if (!curParam.StartTime || !curParam.EndTime) { |
|||
learun.alert.warning('请选择时间!'); |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
|
|||
return true; |
|||
}, |
|||
createReport: function (param) { |
|||
if (!page.beforeCreate()) |
|||
return; |
|||
|
|||
learun.httpAsyncGet2(top.$.rootUrl + '/AutoWeight/Report/GetStatisticsDataByDay', { queryJson: JSON.stringify(curParam) }, function (res) { |
|||
if (res.code !== 200 || !res.data) |
|||
return; |
|||
var data = res.data; |
|||
var billList = data.billList; |
|||
var dataList = []; |
|||
for (var i = 0; i < billList.length; i++) { |
|||
var bill = billList[i]; |
|||
bill.Number = i + 1; |
|||
bill.Time = bill.InStartTime.substr(0, bill.InStartTime.indexOf(" ")).replaceAll("-", "/"); |
|||
bill.DiffWeight = (bill.BillWeight > 0) ? (bill.NetWeight - bill.BillWeight) : 0; |
|||
bill.StandardRate = (bill.BillWeight > 0) ? ((bill.NetWeight / bill.BillWeight) * 100) : 0; |
|||
bill.MissingRate = (bill.BillWeight > 0 && bill.DiffWeight < 0) ? ((-bill.DiffWeight / bill.BillWeight) * 100) : 0; |
|||
|
|||
bill.BillWeight = bill.BillWeight.toFixed(2); |
|||
bill.InWeight = bill.InWeight.toFixed(2); |
|||
bill.OutWeight = bill.OutWeight.toFixed(2); |
|||
bill.NetWeight = bill.NetWeight.toFixed(2); |
|||
bill.DiffWeight = bill.DiffWeight.toFixed(2); |
|||
bill.StandardRate = bill.StandardRate.toFixed(2); |
|||
bill.MissingRate = bill.MissingRate.toFixed(2); |
|||
|
|||
dataList.push(bill); |
|||
} |
|||
|
|||
layui.use(['table', 'excel'], function () { |
|||
layui.table.render({ |
|||
elem: '#gridZone', |
|||
height: "full-130", |
|||
toolbar: true, |
|||
totalRow: true, |
|||
defaultToolbar: [{ |
|||
title: '导出', //标题 |
|||
layEvent: 'MyExport', //事件名,用于 toolbar 事件中使用 |
|||
icon: 'layui-icon-export' //图标类名 |
|||
}], |
|||
cols: [[ |
|||
{ field: 'Number', title: '序号', align: 'center', width: 60, totalRowText: '合计' }, |
|||
{ field: 'SupplierName', title: '供应商', align: 'center' }, |
|||
{ field: 'LicensePlate', title: '车号', align: 'center' }, |
|||
{ field: 'TrailerPlate', title: '挂车号', align: 'center' }, |
|||
{ field: 'Time', title: '日期', align: 'center', width: 110 }, |
|||
{ field: 'BillWeight', title: '发货重量(t)', align: 'center', totalRow: true }, |
|||
{ field: 'InWeight', title: '入场重量(t)', align: 'center' }, |
|||
{ field: 'OutWeight', title: '出场重量(t)', align: 'center' }, |
|||
{ field: 'NetWeight', title: '卸货重量(t)', align: 'center', totalRow: true }, |
|||
{ field: 'DiffWeight', title: '重量差(t)', align: 'center', totalRow: true }, |
|||
{ field: 'StandardRate', title: '达标率(%)', align: 'center' }, |
|||
{ field: 'MissingRate', title: '货损率(%)', align: 'center' }, |
|||
{ field: 'DriverName', title: '运输员', align: 'center' }, |
|||
{ field: 'Driver2Name', title: '押运员', align: 'center' }, |
|||
{ field: 'Remark', title: '备注', align: 'center' } |
|||
]], |
|||
data: dataList, |
|||
limit: Number.MAX_VALUE, |
|||
even: true, |
|||
done: function () { |
|||
let billWeightCount = this.elem.next().find('.layui-table-total td[data-field="BillWeight"] .layui-table-cell').text(); |
|||
let netWeightCount = this.elem.next().find('.layui-table-total td[data-field="NetWeight"] .layui-table-cell').text(); |
|||
if (billWeightCount && netWeightCount) { |
|||
let diffWeightCount = netWeightCount - billWeightCount; |
|||
let standardRateCount = (billWeightCount > 0) ? (netWeightCount / billWeightCount) * 100 : 0; |
|||
let missingRateCount = (billWeightCount > 0 && diffWeightCount < 0) ? (-diffWeightCount / billWeightCount) * 100 : 0; |
|||
this.elem.next().find('.layui-table-total td[data-field="DiffWeight"] .layui-table-cell').text(diffWeightCount.toFixed(2)); |
|||
this.elem.next().find('.layui-table-total td[data-field="StandardRate"] .layui-table-cell').text(standardRateCount.toFixed(2)); |
|||
this.elem.next().find('.layui-table-total td[data-field="MissingRate"] .layui-table-cell').text(missingRateCount.toFixed(2)); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
layui.table.on('toolbar(test)', function (obj) { |
|||
switch (obj.event) { |
|||
case "MyExport": |
|||
page.exportFile(layui.excel, 'gridZone'); |
|||
break; |
|||
}; |
|||
}); |
|||
}); |
|||
}); |
|||
}, |
|||
exportFile: function (excel, id) { |
|||
var exportData = []; |
|||
var d1 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-header table").get(0)); |
|||
var d2 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-body table").get(0)); |
|||
var d3 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-total table").get(0)); |
|||
|
|||
//body |
|||
exportData.push.apply(exportData, d1.head); |
|||
exportData.push.apply(exportData, d2.body); |
|||
if (d2.body.length && d3.body.length) { |
|||
exportData.push.apply(exportData, d3.body); |
|||
} |
|||
excel.setExportCellStyle(exportData, "A1:" + (excel.numToTitle(d1.head[0].length) + (exportData.length)), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'center', |
|||
vertical: 'center', |
|||
}, |
|||
border: { |
|||
top: { style: "thin", color: { rgb: '000000' } }, |
|||
bottom: { style: "thin", color: { rgb: '000000' } }, |
|||
left: { style: "thin", color: { rgb: '000000' } }, |
|||
right: { style: "thin", color: { rgb: '000000' } } |
|||
} |
|||
} |
|||
}); |
|||
|
|||
//header & footer |
|||
//exportData.unshift.apply(exportData, [["SMS/ZH-JL/YK/C003\n" + new Date(curParam.StartTime).format("yyyy年MM月dd日")]]); |
|||
exportData.unshift.apply(exportData, [[new Date(curParam.StartTime).format("yyyy年MM月dd日") + "\nSMS/ZH-JL/YK/C003"]]); |
|||
exportData.unshift.apply(exportData, [["中国航油珠海公司业务油库\n接收油车计量日报表"]]); |
|||
exportData.push.apply(exportData, [["值班员: "]]); |
|||
|
|||
let colNum = d1.head[0].length, rowNum = exportData.length; |
|||
let cF = excel.numToTitle(1), cL = excel.numToTitle(colNum); |
|||
let rF = 1, rL = rowNum; |
|||
|
|||
//header1 |
|||
excel.setExportCellStyle(exportData, (cF + rF) + ":" + (cL + rF), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'center', |
|||
vertical: 'center', |
|||
wrapText: true//配置后换行+\n即可 |
|||
}, |
|||
font: { |
|||
sz: '19', |
|||
bold: true |
|||
} |
|||
} |
|||
}); |
|||
//header2 |
|||
excel.setExportCellStyle(exportData, (cF + (rF + 1)) + ":" + (cL + (rF + 1)), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'right', |
|||
vertical: 'center', |
|||
wrapText: true//配置后换行+\n即可 |
|||
}, |
|||
font: { |
|||
sz: '13' |
|||
} |
|||
} |
|||
}); |
|||
//footer |
|||
excel.setExportCellStyle(exportData, (cF + rL) + ":" + (cL + rL), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'right', |
|||
vertical: 'center' |
|||
}, |
|||
font: { |
|||
sz: '16' |
|||
} |
|||
} |
|||
}); |
|||
|
|||
let mergeObj = [ |
|||
[cF + rF, cL + rF], |
|||
[cF + (rF + 1), cL + (rF + 1)], |
|||
[cF + rL, cL + rL] |
|||
]; |
|||
let mergeConf = excel.makeMergeConfig(mergeObj); |
|||
|
|||
let colObj = {}; |
|||
colObj[excel.numToTitle(1).toString()] = 40; |
|||
colObj[excel.numToTitle(3).toString()] = 70; |
|||
colObj[excel.numToTitle(4).toString()] = 70; |
|||
colObj[excel.numToTitle(5).toString()] = 70; |
|||
colObj[excel.numToTitle(colNum - 2).toString()] = 55; |
|||
colObj[excel.numToTitle(colNum - 1).toString()] = 55; |
|||
colObj[excel.numToTitle(colNum).toString()] = 120; |
|||
let colConf = excel.makeColConfig(colObj, 65); |
|||
|
|||
let rowObj = {}; |
|||
rowObj[rF.toString()] = 60; |
|||
rowObj[(rF + 1).toString()] = 40; |
|||
rowObj[rL.toString()] = 40; |
|||
let rowConf = excel.makeRowConfig(rowObj, 25); |
|||
|
|||
let names = []; |
|||
names.push(supplier_select.innerText); |
|||
names.push(new Date(curParam.StartTime).format("yyyyMMdd")); |
|||
names.push('日报表'); |
|||
|
|||
excel.exportExcel({ |
|||
"sheet1": exportData |
|||
}, names.join('_') + '.xlsx', 'xlsx', { |
|||
extend: { |
|||
// 需传入生成好的配置信息 |
|||
'!merges': mergeConf, |
|||
'!cols': colConf, |
|||
'!rows': rowConf, |
|||
} |
|||
}); |
|||
}, |
|||
refreshData: function () { |
|||
page.createReport(); |
|||
}, |
|||
getDays: function () { |
|||
var date = new Date(); |
|||
//将当前月份加1,下移到下一个月 |
|||
date.setMonth(date.getMonth() + 1); |
|||
//将当前的日期置为0, |
|||
date.setDate(0); |
|||
//再获取天数即取上个月的最后一天的天数 |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
getDaysOfMonth: function (curDate) { |
|||
var date = new Date(curDate.getFullYear(), curDate.getMonth() + 1, 0); |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
generateArray: function (start, end) { |
|||
var arr = new Array(end - start + 1); |
|||
for (var i = 0; i < arr.length; i++) { |
|||
arr[i] = i + start; |
|||
} |
|||
return arr; |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,383 @@ |
|||
@{ |
|||
ViewData["Title"] = "供应商报表"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<link href="~/lib/layui/css/layui.css" rel="stylesheet" /> |
|||
<script src="~/lib/echarts/echarts.min.js"></script> |
|||
<script src="~/lib/layui/layui.js"></script> |
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">月统计报表</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">月统计报表</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
|
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<input type="text" id="datesearch" placeholder="请选择时间"> |
|||
</div> |
|||
<div class="lr-layout-tool-item" style="width: 160px;"> |
|||
<div id="supplier_select" style="border-radius: 4px;"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_create" class="btn btn-primary btn-sm"><span class="lrlg">生成</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body"> |
|||
<div id="gridZone" lay-filter="test"></div> |
|||
@*<div id="gridZone" style="height: 100%;"></div>*@ |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
SupplierId: '' |
|||
}; |
|||
var createJustReturn = false; |
|||
|
|||
layui.config({ |
|||
base: '/lib/layui/layui_exts/', |
|||
}).extend({ |
|||
excel: 'excel', |
|||
}); |
|||
|
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
}, |
|||
bind: function () { |
|||
// 年月选择器 |
|||
laydate.render({ |
|||
elem: '#datesearch', |
|||
type: 'month', |
|||
btns: ['now', 'confirm'], |
|||
//value: new Date(), |
|||
done: function (value, date, endDate) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
var clickTime = new Date(new Date(value).format("yyyy/MM/dd")); |
|||
curParam.StartTime = new Date(clickTime.valueOf()); |
|||
curParam.EndTime = new Date(new Date(clickTime.setMonth(clickTime.getMonth() + 1)).format("yyyy/MM/dd")); |
|||
curParam.StartTime = curParam.StartTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
curParam.EndTime = curParam.EndTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
} |
|||
}); |
|||
|
|||
//供应商选择 |
|||
$('#supplier_select').lrselect({ |
|||
// 访问数据接口地址 |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
placeholder: '请选择供应商', |
|||
// 是否允许搜索 |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
curParam.SupplierId = (!!item && item.id > 0) ? item.id : ''; |
|||
} |
|||
}); |
|||
|
|||
// 生成 |
|||
$('#btn_create').on('click', function () { |
|||
page.createReport(); |
|||
}); |
|||
|
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
//learun.httpAsyncGet(top.$.rootUrl + '/UserCenter/GetUserInfo', function (res) { |
|||
// if (res.code !== 200 || !res.data) |
|||
// return; |
|||
// var baseInfo = res.data.baseinfo; |
|||
// var companyId = baseInfo.F_CompanyId || "207fa1a9-160c-4943-a89b-8fa4db0547ce"; |
|||
// $('#companyTree').lrtreeSet("setValue", companyId); |
|||
// $('#companyTree').lrtreeSet("clickFirst"); |
|||
//}); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
}, |
|||
initGrid: function () { |
|||
}, |
|||
initChart: function () { |
|||
}, |
|||
beforeCreate: function () { |
|||
if (createJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
if (!curParam.StartTime || !curParam.EndTime) { |
|||
learun.alert.warning('请选择时间!'); |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
|
|||
return true; |
|||
}, |
|||
createReport: function (param) { |
|||
if (!page.beforeCreate()) |
|||
return; |
|||
|
|||
learun.httpAsyncGet2(top.$.rootUrl + '/AutoWeight/Report/GetStatisticsDataByMonth', { queryJson: JSON.stringify(curParam) }, function (res) { |
|||
if (res.code !== 200 || !res.data) |
|||
return; |
|||
var data = res.data; |
|||
|
|||
var dayDtoList = data.dayDtoList; |
|||
var dataList = []; |
|||
for (var i = 0; i < dayDtoList.length; i++) { |
|||
var dto = dayDtoList[i]; |
|||
dto.Number = i + 1; |
|||
dto.Time = new Date(dto.Year, dto.Month - 1, dto.Day).format("yyyy/MM/dd"); |
|||
|
|||
dto.BillWeightSum = dto.BillWeightSum.toFixed(2); |
|||
dto.NetWeightSum = dto.NetWeightSum.toFixed(2); |
|||
dto.DiffWeightSum = dto.DiffWeightSum.toFixed(2); |
|||
dto.StandardRate = (dto.BillWeightSum > 0) ? ((dto.NetWeightSum / dto.BillWeightSum) * 100) : 0; |
|||
dto.MissingRate = (dto.BillWeightSum > 0 && dto.DiffWeightSum < 0) ? ((-dto.DiffWeightSum / dto.BillWeightSum) * 100) : 0; |
|||
|
|||
dto.StandardRate = dto.StandardRate.toFixed(2); |
|||
dto.MissingRate = dto.MissingRate.toFixed(2); |
|||
|
|||
dataList.push(dto); |
|||
} |
|||
|
|||
layui.use(['table', 'excel'], function () { |
|||
layui.table.render({ |
|||
elem: '#gridZone', |
|||
height: "full-130", |
|||
toolbar: true, |
|||
totalRow: true, |
|||
defaultToolbar: [{ |
|||
title: '导出', //标题 |
|||
layEvent: 'MyExport', //事件名,用于 toolbar 事件中使用 |
|||
icon: 'layui-icon-export' //图标类名 |
|||
}], |
|||
cols: [[ |
|||
{ field: 'Number', title: '序号', align: 'center', width: 60, totalRowText: '合计' }, |
|||
{ field: 'SupplierName', title: '供应商', align: 'center' }, |
|||
{ field: 'Time', title: '日期', align: 'center' }, |
|||
{ field: 'BillWeightSum', title: '发货重量(t)', align: 'center', totalRow: true }, |
|||
{ field: 'NetWeightSum', title: '卸货重量(t)', align: 'center', totalRow: true }, |
|||
{ field: 'DiffWeightSum', title: '重量差(t)', align: 'center', totalRow: true }, |
|||
{ field: 'StandardRate', title: '达标率(%)', align: 'center' }, |
|||
{ field: 'MissingRate', title: '货损率(%)', align: 'center' }, |
|||
{ field: 'Remark', title: '备注', align: 'center' } |
|||
]], |
|||
data: dataList, |
|||
limit: Number.MAX_VALUE, |
|||
even: true, |
|||
done: function () { |
|||
let billWeightSumCount = this.elem.next().find('.layui-table-total td[data-field="BillWeightSum"] .layui-table-cell').text(); |
|||
let netWeightSumCount = this.elem.next().find('.layui-table-total td[data-field="NetWeightSum"] .layui-table-cell').text(); |
|||
if (billWeightSumCount && netWeightSumCount) { |
|||
let diffWeightSumCount = netWeightSumCount - billWeightSumCount; |
|||
let standardRateCount = (billWeightSumCount > 0) ? (netWeightSumCount / billWeightSumCount) * 100 : 0; |
|||
let missingRateCount = (billWeightSumCount > 0 && diffWeightSumCount < 0) ? (-diffWeightSumCount / billWeightSumCount) * 100 : 0; |
|||
this.elem.next().find('.layui-table-total td[data-field="DiffWeightSum"] .layui-table-cell').text(diffWeightSumCount.toFixed(2)); |
|||
this.elem.next().find('.layui-table-total td[data-field="StandardRate"] .layui-table-cell').text(standardRateCount.toFixed(2)); |
|||
this.elem.next().find('.layui-table-total td[data-field="MissingRate"] .layui-table-cell').text(missingRateCount.toFixed(2)); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
layui.table.on('toolbar(test)', function (obj) { |
|||
switch (obj.event) { |
|||
case "MyExport": |
|||
page.exportFile(layui.excel, 'gridZone'); |
|||
break; |
|||
}; |
|||
}); |
|||
}); |
|||
}); |
|||
}, |
|||
exportFile: function (excel, id) { |
|||
var exportData = [] |
|||
var d1 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-header table").get(0)); |
|||
var d2 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-body table").get(0)); |
|||
var d3 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-total table").get(0)); |
|||
|
|||
//body |
|||
exportData.push.apply(exportData, d1.head); |
|||
exportData.push.apply(exportData, d2.body); |
|||
if (d2.body.length && d3.body.length) { |
|||
exportData.push.apply(exportData, d3.body); |
|||
} |
|||
excel.setExportCellStyle(exportData, "A1:" + (excel.numToTitle(d1.head[0].length) + (exportData.length)), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'center', |
|||
vertical: 'center', |
|||
}, |
|||
border: { |
|||
top: { style: "thin", color: { rgb: '000000' } }, |
|||
bottom: { style: "thin", color: { rgb: '000000' } }, |
|||
left: { style: "thin", color: { rgb: '000000' } }, |
|||
right: { style: "thin", color: { rgb: '000000' } } |
|||
} |
|||
} |
|||
}); |
|||
|
|||
//header & footer |
|||
//exportData.unshift.apply(exportData, [["SMS/ZH-JL/YK/C003\n" + new Date(curParam.StartTime).format("yyyy年MM月")]]); |
|||
exportData.unshift.apply(exportData, [[new Date(curParam.StartTime).format("yyyy年MM月") + "\nSMS/ZH-JL/YK/C003"]]); |
|||
exportData.unshift.apply(exportData, [["中国航油珠海公司业务油库\n接收油车计量月报表"]]); |
|||
exportData.push.apply(exportData, [["值班员: "]]); |
|||
|
|||
let colNum = d1.head[0].length, rowNum = exportData.length; |
|||
let cF = excel.numToTitle(1), cL = excel.numToTitle(colNum); |
|||
let rF = 1, rL = rowNum; |
|||
|
|||
//header1 |
|||
excel.setExportCellStyle(exportData, (cF + rF) + ":" + (cL + rF), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'center', |
|||
vertical: 'center', |
|||
wrapText: true//配置后换行+\n即可 |
|||
}, |
|||
font: { |
|||
sz: '19', |
|||
bold: true |
|||
} |
|||
} |
|||
}); |
|||
//header2 |
|||
excel.setExportCellStyle(exportData, (cF + (rF + 1)) + ":" + (cL + (rF + 1)), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'right', |
|||
vertical: 'center', |
|||
wrapText: true//配置后换行+\n即可 |
|||
}, |
|||
font: { |
|||
sz: '13' |
|||
} |
|||
} |
|||
}); |
|||
//footer |
|||
excel.setExportCellStyle(exportData, (cF + rL) + ":" + (cL + rL), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'right', |
|||
vertical: 'center' |
|||
}, |
|||
font: { |
|||
sz: '16' |
|||
} |
|||
} |
|||
}); |
|||
|
|||
let mergeObj = [ |
|||
[cF + rF, cL + rF], |
|||
[cF + (rF + 1), cL + (rF + 1)], |
|||
[cF + rL, cL + rL] |
|||
]; |
|||
let mergeConf = excel.makeMergeConfig(mergeObj); |
|||
|
|||
let colObj = {}; |
|||
colObj[excel.numToTitle(1).toString()] = 40; |
|||
colObj[excel.numToTitle(3).toString()] = 70; |
|||
colObj[excel.numToTitle(colNum).toString()] = 120; |
|||
let colConf = excel.makeColConfig(colObj, 65); |
|||
|
|||
let rowObj = {}; |
|||
rowObj[rF.toString()] = 60; |
|||
rowObj[(rF + 1).toString()] = 40; |
|||
rowObj[rL.toString()] = 40; |
|||
let rowConf = excel.makeRowConfig(rowObj, 25); |
|||
|
|||
let names = []; |
|||
names.push(supplier_select.innerText); |
|||
names.push(new Date(curParam.StartTime).format("yyyyMM")); |
|||
names.push('月报表'); |
|||
|
|||
excel.exportExcel({ |
|||
"sheet1": exportData |
|||
}, names.join('_') + '.xlsx', 'xlsx', { |
|||
extend: { |
|||
// 需传入生成好的配置信息 |
|||
'!merges': mergeConf, |
|||
'!cols': colConf, |
|||
'!rows': rowConf, |
|||
} |
|||
}); |
|||
}, |
|||
refreshData: function () { |
|||
page.createReport(); |
|||
}, |
|||
getDays: function () { |
|||
var date = new Date(); |
|||
//将当前月份加1,下移到下一个月 |
|||
date.setMonth(date.getMonth() + 1); |
|||
//将当前的日期置为0, |
|||
date.setDate(0); |
|||
//再获取天数即取上个月的最后一天的天数 |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
getDaysOfMonth: function (curDate) { |
|||
var date = new Date(curDate.getFullYear(), curDate.getMonth() + 1, 0); |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
generateArray: function (start, end) { |
|||
var arr = new Array(end - start + 1); |
|||
for (var i = 0; i < arr.length; i++) { |
|||
arr[i] = i + start; |
|||
} |
|||
return arr; |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,383 @@ |
|||
@{ |
|||
ViewData["Title"] = "供应商报表"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<link href="~/lib/layui/css/layui.css" rel="stylesheet" /> |
|||
<script src="~/lib/echarts/echarts.min.js"></script> |
|||
<script src="~/lib/layui/layui.js"></script> |
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">年统计报表</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">年统计报表</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
|
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<input type="text" id="datesearch" placeholder="请选择时间"> |
|||
</div> |
|||
<div class="lr-layout-tool-item" style="width: 160px;"> |
|||
<div id="supplier_select" style="border-radius: 4px;"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_create" class="btn btn-primary btn-sm"><span class="lrlg">生成</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body"> |
|||
<div id="gridZone" lay-filter="test"></div> |
|||
@*<div id="gridZone" style="height: 100%;"></div>*@ |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
SupplierId: '' |
|||
}; |
|||
var createJustReturn = false; |
|||
|
|||
layui.config({ |
|||
base: '/lib/layui/layui_exts/', |
|||
}).extend({ |
|||
excel: 'excel', |
|||
}); |
|||
|
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
}, |
|||
bind: function () { |
|||
// 年月选择器 |
|||
laydate.render({ |
|||
elem: '#datesearch', |
|||
type: 'year', |
|||
btns: ['now', 'confirm'], |
|||
//value: new Date(), |
|||
done: function (value, date, endDate) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
var clickTime = new Date(new Date(value).format("yyyy/MM/dd")); |
|||
curParam.StartTime = new Date(clickTime.valueOf()); |
|||
curParam.EndTime = new Date(new Date(clickTime.setFullYear(clickTime.getFullYear() + 1)).format("yyyy/MM/dd")); |
|||
curParam.StartTime = curParam.StartTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
curParam.EndTime = curParam.EndTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
} |
|||
}); |
|||
|
|||
//供应商选择 |
|||
$('#supplier_select').lrselect({ |
|||
// 访问数据接口地址 |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
placeholder: '请选择供应商', |
|||
// 是否允许搜索 |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
curParam.SupplierId = (!!item && item.id > 0) ? item.id : ''; |
|||
} |
|||
}); |
|||
|
|||
// 生成 |
|||
$('#btn_create').on('click', function () { |
|||
page.createReport(); |
|||
}); |
|||
|
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
//learun.httpAsyncGet(top.$.rootUrl + '/UserCenter/GetUserInfo', function (res) { |
|||
// if (res.code !== 200 || !res.data) |
|||
// return; |
|||
// var baseInfo = res.data.baseinfo; |
|||
// var companyId = baseInfo.F_CompanyId || "207fa1a9-160c-4943-a89b-8fa4db0547ce"; |
|||
// $('#companyTree').lrtreeSet("setValue", companyId); |
|||
// $('#companyTree').lrtreeSet("clickFirst"); |
|||
//}); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
}, |
|||
initGrid: function () { |
|||
}, |
|||
initChart: function () { |
|||
}, |
|||
beforeCreate: function () { |
|||
if (createJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
if (!curParam.StartTime || !curParam.EndTime) { |
|||
learun.alert.warning('请选择时间!'); |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
|
|||
return true; |
|||
}, |
|||
createReport: function (param) { |
|||
if (!page.beforeCreate()) |
|||
return; |
|||
|
|||
learun.httpAsyncGet2(top.$.rootUrl + '/AutoWeight/Report/GetStatisticsDataByYear', { queryJson: JSON.stringify(curParam) }, function (res) { |
|||
if (res.code !== 200 || !res.data) |
|||
return; |
|||
var data = res.data; |
|||
|
|||
var monthDtoList = data.monthDtoList; |
|||
var dataList = []; |
|||
for (var i = 0; i < monthDtoList.length; i++) { |
|||
var dto = monthDtoList[i]; |
|||
dto.Number = i + 1; |
|||
dto.Time = new Date(dto.Year, dto.Month - 1).format("yyyy/MM"); |
|||
|
|||
dto.BillWeightSum = dto.BillWeightSum.toFixed(2); |
|||
dto.NetWeightSum = dto.NetWeightSum.toFixed(2); |
|||
dto.DiffWeightSum = dto.DiffWeightSum.toFixed(2); |
|||
dto.StandardRate = (dto.BillWeightSum > 0) ? ((dto.NetWeightSum / dto.BillWeightSum) * 100) : 0; |
|||
dto.MissingRate = (dto.BillWeightSum > 0 && dto.DiffWeightSum < 0) ? ((-dto.DiffWeightSum / dto.BillWeightSum) * 100) : 0; |
|||
|
|||
dto.StandardRate = dto.StandardRate.toFixed(2); |
|||
dto.MissingRate = dto.MissingRate.toFixed(2); |
|||
|
|||
dataList.push(dto); |
|||
} |
|||
|
|||
layui.use(['table', 'excel'], function () { |
|||
layui.table.render({ |
|||
elem: '#gridZone', |
|||
height: "full-130", |
|||
toolbar: true, |
|||
totalRow: true, |
|||
defaultToolbar: [{ |
|||
title: '导出', //标题 |
|||
layEvent: 'MyExport', //事件名,用于 toolbar 事件中使用 |
|||
icon: 'layui-icon-export' //图标类名 |
|||
}], |
|||
cols: [[ |
|||
{ field: 'Number', title: '序号', align: 'center', width: 60, totalRowText: '合计' }, |
|||
{ field: 'SupplierName', title: '供应商', align: 'center' }, |
|||
{ field: 'Time', title: '日期', align: 'center' }, |
|||
{ field: 'BillWeightSum', title: '发货重量(t)', align: 'center', totalRow: true }, |
|||
{ field: 'NetWeightSum', title: '卸货重量(t)', align: 'center', totalRow: true }, |
|||
{ field: 'DiffWeightSum', title: '重量差(t)', align: 'center', totalRow: true }, |
|||
{ field: 'StandardRate', title: '达标率(%)', align: 'center' }, |
|||
{ field: 'MissingRate', title: '货损率(%)', align: 'center' }, |
|||
{ field: 'Remark', title: '备注', align: 'center' } |
|||
]], |
|||
data: dataList, |
|||
limit: Number.MAX_VALUE, |
|||
even: true, |
|||
done: function () { |
|||
let billWeightSumCount = this.elem.next().find('.layui-table-total td[data-field="BillWeightSum"] .layui-table-cell').text(); |
|||
let netWeightSumCount = this.elem.next().find('.layui-table-total td[data-field="NetWeightSum"] .layui-table-cell').text(); |
|||
if (billWeightSumCount && netWeightSumCount) { |
|||
let diffWeightSumCount = netWeightSumCount - billWeightSumCount; |
|||
let standardRateCount = (billWeightSumCount > 0) ? (netWeightSumCount / billWeightSumCount) * 100 : 0; |
|||
let missingRateCount = (billWeightSumCount > 0 && diffWeightSumCount < 0) ? (-diffWeightSumCount / billWeightSumCount) * 100 : 0; |
|||
this.elem.next().find('.layui-table-total td[data-field="DiffWeightSum"] .layui-table-cell').text(diffWeightSumCount.toFixed(2)); |
|||
this.elem.next().find('.layui-table-total td[data-field="StandardRate"] .layui-table-cell').text(standardRateCount.toFixed(2)); |
|||
this.elem.next().find('.layui-table-total td[data-field="MissingRate"] .layui-table-cell').text(missingRateCount.toFixed(2)); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
layui.table.on('toolbar(test)', function (obj) { |
|||
switch (obj.event) { |
|||
case "MyExport": |
|||
page.exportFile(layui.excel, 'gridZone'); |
|||
break; |
|||
}; |
|||
}); |
|||
}); |
|||
}); |
|||
}, |
|||
exportFile: function (excel, id) { |
|||
var exportData = [] |
|||
var d1 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-header table").get(0)); |
|||
var d2 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-body table").get(0)); |
|||
var d3 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-total table").get(0)); |
|||
|
|||
//body |
|||
exportData.push.apply(exportData, d1.head); |
|||
exportData.push.apply(exportData, d2.body); |
|||
if (d2.body.length && d3.body.length) { |
|||
exportData.push.apply(exportData, d3.body); |
|||
} |
|||
excel.setExportCellStyle(exportData, "A1:" + (excel.numToTitle(d1.head[0].length) + (exportData.length)), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'center', |
|||
vertical: 'center', |
|||
}, |
|||
border: { |
|||
top: { style: "thin", color: { rgb: '000000' } }, |
|||
bottom: { style: "thin", color: { rgb: '000000' } }, |
|||
left: { style: "thin", color: { rgb: '000000' } }, |
|||
right: { style: "thin", color: { rgb: '000000' } } |
|||
} |
|||
} |
|||
}); |
|||
|
|||
//header & footer |
|||
//exportData.unshift.apply(exportData, [["SMS/ZH-JL/YK/C003\n" + new Date(curParam.StartTime).format("yyyy年")]]); |
|||
exportData.unshift.apply(exportData, [[new Date(curParam.StartTime).format("yyyy年") + "\nSMS/ZH-JL/YK/C003"]]); |
|||
exportData.unshift.apply(exportData, [["中国航油珠海公司业务油库\n接收油车计量年报表"]]); |
|||
exportData.push.apply(exportData, [["值班员: "]]); |
|||
|
|||
let colNum = d1.head[0].length, rowNum = exportData.length; |
|||
let cF = excel.numToTitle(1), cL = excel.numToTitle(colNum); |
|||
let rF = 1, rL = rowNum; |
|||
|
|||
//header1 |
|||
excel.setExportCellStyle(exportData, (cF + rF) + ":" + (cL + rF), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'center', |
|||
vertical: 'center', |
|||
wrapText: true//配置后换行+\n即可 |
|||
}, |
|||
font: { |
|||
sz: '19', |
|||
bold: true |
|||
} |
|||
} |
|||
}); |
|||
//header2 |
|||
excel.setExportCellStyle(exportData, (cF + (rF + 1)) + ":" + (cL + (rF + 1)), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'right', |
|||
vertical: 'center', |
|||
wrapText: true//配置后换行+\n即可 |
|||
}, |
|||
font: { |
|||
sz: '13' |
|||
} |
|||
} |
|||
}); |
|||
//footer |
|||
excel.setExportCellStyle(exportData, (cF + rL) + ":" + (cL + rL), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'right', |
|||
vertical: 'center' |
|||
}, |
|||
font: { |
|||
sz: '16' |
|||
} |
|||
} |
|||
}); |
|||
|
|||
let mergeObj = [ |
|||
[cF + rF, cL + rF], |
|||
[cF + (rF + 1), cL + (rF + 1)], |
|||
[cF + rL, cL + rL] |
|||
]; |
|||
let mergeConf = excel.makeMergeConfig(mergeObj); |
|||
|
|||
let colObj = {}; |
|||
colObj[excel.numToTitle(1).toString()] = 40; |
|||
colObj[excel.numToTitle(3).toString()] = 70; |
|||
colObj[excel.numToTitle(colNum).toString()] = 120; |
|||
let colConf = excel.makeColConfig(colObj, 65); |
|||
|
|||
let rowObj = {}; |
|||
rowObj[rF.toString()] = 60; |
|||
rowObj[(rF + 1).toString()] = 40; |
|||
rowObj[rL.toString()] = 40; |
|||
let rowConf = excel.makeRowConfig(rowObj, 25); |
|||
|
|||
let names = []; |
|||
names.push(supplier_select.innerText); |
|||
names.push(new Date(curParam.StartTime).format("yyyy")); |
|||
names.push('年报表'); |
|||
|
|||
excel.exportExcel({ |
|||
"sheet1": exportData |
|||
}, names.join('_') + '.xlsx', 'xlsx', { |
|||
extend: { |
|||
// 需传入生成好的配置信息 |
|||
'!merges': mergeConf, |
|||
'!cols': colConf, |
|||
'!rows': rowConf, |
|||
} |
|||
}); |
|||
}, |
|||
refreshData: function () { |
|||
page.createReport(); |
|||
}, |
|||
getDays: function () { |
|||
var date = new Date(); |
|||
//将当前月份加1,下移到下一个月 |
|||
date.setMonth(date.getMonth() + 1); |
|||
//将当前的日期置为0, |
|||
date.setDate(0); |
|||
//再获取天数即取上个月的最后一天的天数 |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
getDaysOfMonth: function (curDate) { |
|||
var date = new Date(curDate.getFullYear(), curDate.getMonth() + 1, 0); |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
generateArray: function (start, end) { |
|||
var arr = new Array(end - start + 1); |
|||
for (var i = 0; i < arr.length; i++) { |
|||
arr[i] = i + start; |
|||
} |
|||
return arr; |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,392 @@ |
|||
@{ |
|||
ViewData["Title"] = "供应商报表"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<link href="~/lib/layui/css/layui.css" rel="stylesheet" /> |
|||
<script src="~/lib/echarts/echarts.min.js"></script> |
|||
<script src="~/lib/layui/layui.js"></script> |
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">超差分析报表</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">超差分析报表</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
|
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<input type="text" id="datesearch" placeholder="请选择时间"> |
|||
</div> |
|||
<div class="lr-layout-tool-item" style="width: 160px;"> |
|||
<div id="supplier_select" style="border-radius: 4px;"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_create" class="btn btn-primary btn-sm"><span class="lrlg">生成</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body"> |
|||
<div id="gridZone" lay-filter="test"></div> |
|||
@*<div id="gridZone" style="height: 100%;"></div>*@ |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
SupplierId: '' |
|||
}; |
|||
var createJustReturn = false; |
|||
|
|||
layui.config({ |
|||
base: '/lib/layui/layui_exts/', |
|||
}).extend({ |
|||
excel: 'excel', |
|||
}); |
|||
|
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
}, |
|||
bind: function () { |
|||
// 年月选择器 |
|||
laydate.render({ |
|||
elem: '#datesearch', |
|||
type: 'month', |
|||
btns: ['now', 'confirm'], |
|||
//value: new Date(), |
|||
done: function (value, date, endDate) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
var clickTime = new Date(new Date(value).format("yyyy/MM/dd")); |
|||
curParam.StartTime = new Date(clickTime.valueOf()); |
|||
curParam.EndTime = new Date(new Date(clickTime.setMonth(clickTime.getMonth() + 1)).format("yyyy/MM/dd")); |
|||
curParam.StartTime = curParam.StartTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
curParam.EndTime = curParam.EndTime.format("yyyy/MM/dd hh:mm:ss"); |
|||
} |
|||
}); |
|||
|
|||
//供应商选择 |
|||
$('#supplier_select').lrselect({ |
|||
// 访问数据接口地址 |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
placeholder: '请选择供应商', |
|||
// 是否允许搜索 |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
} |
|||
curParam.SupplierId = (!!item && item.id > 0) ? item.id : ''; |
|||
} |
|||
}); |
|||
|
|||
// 生成 |
|||
$('#btn_create').on('click', function () { |
|||
page.createReport(); |
|||
}); |
|||
|
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
//learun.httpAsyncGet(top.$.rootUrl + '/UserCenter/GetUserInfo', function (res) { |
|||
// if (res.code !== 200 || !res.data) |
|||
// return; |
|||
// var baseInfo = res.data.baseinfo; |
|||
// var companyId = baseInfo.F_CompanyId || "207fa1a9-160c-4943-a89b-8fa4db0547ce"; |
|||
// $('#companyTree').lrtreeSet("setValue", companyId); |
|||
// $('#companyTree').lrtreeSet("clickFirst"); |
|||
//}); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
}, |
|||
initGrid: function () { |
|||
}, |
|||
initChart: function () { |
|||
}, |
|||
beforeCreate: function () { |
|||
if (createJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
if (!curParam.StartTime || !curParam.EndTime) { |
|||
learun.alert.warning('请选择时间!'); |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
|
|||
return true; |
|||
}, |
|||
createReport: function (param) { |
|||
if (!page.beforeCreate()) |
|||
return; |
|||
|
|||
learun.httpAsyncGet2(top.$.rootUrl + '/AutoWeight/Report/GetTruckGradeByMonth', { queryJson: JSON.stringify(curParam) }, function (res) { |
|||
if (res.code !== 200 || !res.data) |
|||
return; |
|||
let data = res.data; |
|||
let billList = data.billList; |
|||
let dataList = []; |
|||
|
|||
//let index = 0; |
|||
//for (let bill of billList) { |
|||
//} |
|||
let index = 0; |
|||
for (let i = 0; i < billList.length; i++) { |
|||
let bill = billList[i]; |
|||
if (!bill.Id) { |
|||
dataList.push(bill); |
|||
continue; |
|||
} |
|||
|
|||
bill.Number = ++index; |
|||
bill.Time = bill.InStartTime.substr(0, bill.InStartTime.indexOf(" ")).replaceAll("-", "/"); |
|||
bill.DiffWeight = (bill.BillWeight > 0) ? (bill.NetWeight - bill.BillWeight) : 0; |
|||
bill.StandardRate = (bill.BillWeight > 0) ? ((bill.NetWeight / bill.BillWeight) * 100) : 0; |
|||
bill.MissingRate = (bill.BillWeight > 0 && bill.DiffWeight < 0) ? ((-bill.DiffWeight / bill.BillWeight) * 100) : 0; |
|||
|
|||
bill.BillWeight = bill.BillWeight.toFixed(2); |
|||
bill.InWeight = bill.InWeight.toFixed(2); |
|||
bill.OutWeight = bill.OutWeight.toFixed(2); |
|||
bill.NetWeight = bill.NetWeight.toFixed(2); |
|||
bill.DiffWeight = bill.DiffWeight.toFixed(2); |
|||
bill.StandardRate = bill.StandardRate.toFixed(2); |
|||
bill.MissingRate = bill.MissingRate.toFixed(2); |
|||
|
|||
dataList.push(bill); |
|||
} |
|||
|
|||
layui.use(['table', 'excel'], function () { |
|||
layui.table.render({ |
|||
elem: '#gridZone', |
|||
height: "full-130", |
|||
toolbar: true, |
|||
//totalRow: false, |
|||
defaultToolbar: [{ |
|||
title: '导出', //标题 |
|||
layEvent: 'MyExport', //事件名,用于 toolbar 事件中使用 |
|||
icon: 'layui-icon-export' //图标类名 |
|||
}], |
|||
cols: [[ |
|||
{ field: 'Number', title: '序号', align: 'center', width: 60 }, |
|||
{ field: 'SupplierName', title: '供应商', align: 'center' }, |
|||
{ field: 'LicensePlate', title: '车号', align: 'center' }, |
|||
{ field: 'TrailerPlate', title: '挂车号', align: 'center' }, |
|||
{ field: 'Time', title: '日期', align: 'center', width: 110 }, |
|||
{ field: 'BillWeight', title: '发货重量(t)', align: 'center', totalRow: true }, |
|||
{ field: 'InWeight', title: '入场重量(t)', align: 'center' }, |
|||
{ field: 'OutWeight', title: '出场重量(t)', align: 'center' }, |
|||
{ field: 'NetWeight', title: '卸货重量(t)', align: 'center', totalRow: true }, |
|||
{ field: 'DiffWeight', title: '重量差(t)', align: 'center', totalRow: true }, |
|||
{ field: 'StandardRate', title: '达标率(%)', align: 'center' }, |
|||
{ field: 'MissingRate', title: '货损率(%)', align: 'center' }, |
|||
{ field: 'DriverName', title: '运输员', align: 'center' }, |
|||
{ field: 'Driver2Name', title: '押运员', align: 'center' }, |
|||
{ field: 'Remark', title: '备注', align: 'center' } |
|||
]], |
|||
data: dataList, |
|||
limit: Number.MAX_VALUE, |
|||
even: true |
|||
}); |
|||
|
|||
layui.table.on('toolbar(test)', function (obj) { |
|||
switch (obj.event) { |
|||
case "MyExport": |
|||
page.exportFile(layui.excel, 'gridZone'); |
|||
break; |
|||
}; |
|||
}); |
|||
}); |
|||
}); |
|||
}, |
|||
exportFile: function (excel, id) { |
|||
var exportData = []; |
|||
var d1 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-header table").get(0)); |
|||
var d2 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-body table").get(0)); |
|||
var d3 = LAY_EXCEL.tableToJson($("div[lay-id=" + id + "] .layui-table-total table").get(0)); |
|||
|
|||
//body |
|||
exportData.push.apply(exportData, d1.head); |
|||
exportData.push.apply(exportData, d2.body); |
|||
if (d2.body.length && d3.body && d3.body.length) { |
|||
exportData.push.apply(exportData, d3.body); |
|||
} |
|||
excel.setExportCellStyle(exportData, "A1:" + (excel.numToTitle(d1.head[0].length) + (exportData.length)), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'center', |
|||
vertical: 'center', |
|||
}, |
|||
border: { |
|||
top: { style: "thin", color: { rgb: '000000' } }, |
|||
bottom: { style: "thin", color: { rgb: '000000' } }, |
|||
left: { style: "thin", color: { rgb: '000000' } }, |
|||
right: { style: "thin", color: { rgb: '000000' } } |
|||
} |
|||
} |
|||
}); |
|||
|
|||
//header & footer |
|||
//exportData.unshift.apply(exportData, [["SMS/ZH-JL/YK/C003\n" + new Date(curParam.StartTime).format("yyyy年MM月")]]); |
|||
exportData.unshift.apply(exportData, [[new Date(curParam.StartTime).format("yyyy年MM月") + "\nSMS/ZH-JL/YK/C003"]]); |
|||
exportData.unshift.apply(exportData, [["中国航油珠海公司业务油库\n接收油车计量超差分析报表"]]); |
|||
exportData.push.apply(exportData, [["值班员: "]]); |
|||
|
|||
let colNum = d1.head[0].length, rowNum = exportData.length; |
|||
let cF = excel.numToTitle(1), cL = excel.numToTitle(colNum); |
|||
let rF = 1, rL = rowNum; |
|||
|
|||
//header1 |
|||
excel.setExportCellStyle(exportData, (cF + rF) + ":" + (cL + rF), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'center', |
|||
vertical: 'center', |
|||
wrapText: true//配置后换行+\n即可 |
|||
}, |
|||
font: { |
|||
sz: '19', |
|||
bold: true |
|||
} |
|||
} |
|||
}); |
|||
//header2 |
|||
excel.setExportCellStyle(exportData, (cF + (rF + 1)) + ":" + (cL + (rF + 1)), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'right', |
|||
vertical: 'center', |
|||
wrapText: true//配置后换行+\n即可 |
|||
}, |
|||
font: { |
|||
sz: '13' |
|||
} |
|||
} |
|||
}); |
|||
//footer |
|||
excel.setExportCellStyle(exportData, (cF + rL) + ":" + (cL + rL), { |
|||
s: { |
|||
alignment: { |
|||
horizontal: 'right', |
|||
vertical: 'center' |
|||
}, |
|||
font: { |
|||
sz: '16' |
|||
} |
|||
} |
|||
}); |
|||
|
|||
let mergeObj = [ |
|||
[cF + rF, cL + rF], |
|||
[cF + (rF + 1), cL + (rF + 1)], |
|||
[cF + rL, cL + rL] |
|||
]; |
|||
let mergeConf = excel.makeMergeConfig(mergeObj); |
|||
|
|||
let colObj = {}; |
|||
colObj[excel.numToTitle(1).toString()] = 40; |
|||
colObj[excel.numToTitle(3).toString()] = 70; |
|||
colObj[excel.numToTitle(4).toString()] = 70; |
|||
colObj[excel.numToTitle(5).toString()] = 70; |
|||
colObj[excel.numToTitle(colNum - 2).toString()] = 55; |
|||
colObj[excel.numToTitle(colNum - 1).toString()] = 55; |
|||
colObj[excel.numToTitle(colNum).toString()] = 120; |
|||
let colConf = excel.makeColConfig(colObj, 65); |
|||
|
|||
let rowObj = {}; |
|||
rowObj[rF.toString()] = 60; |
|||
rowObj[(rF + 1).toString()] = 40; |
|||
rowObj[rL.toString()] = 40; |
|||
let rowConf = excel.makeRowConfig(rowObj, 25); |
|||
|
|||
let names = []; |
|||
names.push(supplier_select.innerText); |
|||
names.push(new Date(curParam.StartTime).format("yyyyMM")); |
|||
names.push('超差分析报表'); |
|||
|
|||
excel.exportExcel({ |
|||
"sheet1": exportData |
|||
}, names.join('_') + '.xlsx', 'xlsx', { |
|||
extend: { |
|||
// 需传入生成好的配置信息 |
|||
'!merges': mergeConf, |
|||
'!cols': colConf, |
|||
'!rows': rowConf, |
|||
} |
|||
}); |
|||
}, |
|||
refreshData: function () { |
|||
page.createReport(); |
|||
}, |
|||
getDays: function () { |
|||
var date = new Date(); |
|||
//将当前月份加1,下移到下一个月 |
|||
date.setMonth(date.getMonth() + 1); |
|||
//将当前的日期置为0, |
|||
date.setDate(0); |
|||
//再获取天数即取上个月的最后一天的天数 |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
getDaysOfMonth: function (curDate) { |
|||
var date = new Date(curDate.getFullYear(), curDate.getMonth() + 1, 0); |
|||
var days = date.getDate(); |
|||
return days; |
|||
}, |
|||
generateArray: function (start, end) { |
|||
var arr = new Array(end - start + 1); |
|||
for (var i = 0; i < arr.length; i++) { |
|||
arr[i] = i + start; |
|||
} |
|||
return arr; |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,70 @@ |
|||
@{ |
|||
ViewData["Title"] = "站点表单"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
|
|||
<div id="form" class="lr-form-wrap" formAuth="yes"> |
|||
<input id="CompanyId" type="hidden" /> |
|||
<div class="col-xs-6 lr-form-item"> |
|||
<div class="lr-form-item-title">站点名<font face="宋体">*</font></div> |
|||
<input id="Name" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">备注</div> |
|||
<textarea id="Remark" class="form-control" style="height:90px;"></textarea> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var selectedRow = learun.frameTab.currentIframe().selectedRow; |
|||
var companyId = request('companyId'); |
|||
var keyValue = !!selectedRow ? selectedRow.Id : ''; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
}, |
|||
bind: function () { |
|||
/*检测重复项*/ |
|||
$('#Name').on('blur', function () { |
|||
$.lrExistField(keyValue, 'Name', 'aw_site', 'Id'); |
|||
}); |
|||
}, |
|||
initData: function () { |
|||
if (!!selectedRow) { |
|||
$('#form').lrSetFormData(selectedRow); |
|||
} |
|||
else { |
|||
$('#CompanyId').val(companyId); |
|||
} |
|||
}, |
|||
validForm: function (code) { |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
save: function (processId, callback) { |
|||
var postData = $('body').lrGetFormData(); |
|||
postData.Id = processId; |
|||
$.lrSaveForm(top.$.rootUrl + '/AutoWeight/Site/SaveForm', postData, function (res) { |
|||
// 保存成功后才回调 |
|||
callback && callback(res); |
|||
}); |
|||
} |
|||
}; |
|||
// 保存数据 |
|||
window.acceptClick = function (callback) { |
|||
if (page.validForm()) { |
|||
page.save(keyValue, function (res) { |
|||
callback && callback(); |
|||
}); |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,252 @@ |
|||
@{ |
|||
ViewData["Title"] = "站点管理"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
|
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">公司信息</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">站点信息</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<div id="datesearch" class="datetime"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" /> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_hint" class="fa fa-question-circle" style="font-size: 18px; color: orange;"></a> |
|||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> <span class="lrlg">查询</span></a> |
|||
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i> <span class="lrlg">重置</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
<div class="btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="btn_add" class="btn btn-default"><i class="fa fa-plus"></i> <span class="lrlg">新增</span></a> |
|||
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></a> |
|||
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body" id="gridtable"></div> |
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
|
|||
<script> |
|||
var selectedRow; |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
Keyword: '' |
|||
}; |
|||
var checkJustReturn = false; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
}, |
|||
bind: function () { |
|||
//日期查询 |
|||
$('.datetime').each(function () { |
|||
$(this).lrdate({ |
|||
//初始值 |
|||
dfdata: [ |
|||
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近1月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近3月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
], |
|||
// 初始索引值 |
|||
dfvalue: '-1', |
|||
selectfn: function (begin, end) { |
|||
curParam.StartTime = begin; |
|||
curParam.EndTime = end; |
|||
page.search(); |
|||
} |
|||
}); |
|||
}); |
|||
//提示 |
|||
$('#btn_hint').popover({ |
|||
trigger: 'hover',//触发方式 |
|||
placement: 'right',//弹出框位置 |
|||
html: true,//添加data-html="true"之后,data-content里面就可以添加HTML代码 |
|||
//title: 'title', |
|||
content: |
|||
" 查询时间:<br>创建时间<br>" + |
|||
" 查询关键字:<br>站点名", |
|||
container: 'body' |
|||
}); |
|||
// 查询 |
|||
$('#btn_Search').on('click', function () { |
|||
curParam.Keyword = $('#txt_Keyword').val(); |
|||
page.search(); |
|||
}); |
|||
// 重置 |
|||
$('#btn_Reset').on('click', function () { |
|||
var tempId = curParam.CompanyId; |
|||
curParam = {}; |
|||
curParam.CompanyId = tempId; |
|||
checkJustReturn = true; |
|||
$('#datesearch').find('.lr-search-date-btn-block:last').find('a').click(); |
|||
$('#txt_Keyword').val(''); |
|||
checkJustReturn = false; |
|||
page.search(); |
|||
}); |
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
//新增 |
|||
$('#btn_add').on('click', function () { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
selectedRow = null; |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '新增', |
|||
url: top.$.rootUrl + '/AutoWeight/Site/Form?companyId=' + curParam.CompanyId, |
|||
width: 750, |
|||
height: 450, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
}); |
|||
//编辑 |
|||
$('#btn_edit').on('click', function () { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
selectedRow = $('#gridtable').jfGridGet('rowdata'); |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '编辑', |
|||
url: top.$.rootUrl + '/AutoWeight/Site/Form?companyId=' + curParam.CompanyId, |
|||
width: 750, |
|||
height: 450, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
//删除 |
|||
$('#btn_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该项!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/AutoWeight/Site/DeleteForm', { keyValue: keyValue }, function () { |
|||
page.refreshData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
page.search(); |
|||
}, |
|||
initGrid: function () { |
|||
$('#gridtable').lrAuthorizeJfGrid({ |
|||
url: top.$.rootUrl + '/AutoWeight/Site/GetPageList', |
|||
isPage: true, |
|||
mainId: 'Id', |
|||
rows: 30, |
|||
sidx: '',//排序字段只有在分页的情况下支持,多个字段用,隔开 |
|||
headData: [ |
|||
{ |
|||
label: "Id", name: "Id", ishide: true |
|||
}, |
|||
{ |
|||
label: "名称", name: "Name", width: 100, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "创建者", name: "CreateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "创建时间", name: "CreateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "更新者", name: "UpdateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "更新时间", name: "UpdateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "备注", name: "Remark", align: "left" |
|||
} |
|||
] |
|||
}); |
|||
}, |
|||
beforeSearch: function () { |
|||
if (checkJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
search: function (param) { |
|||
if (page.beforeSearch()) { |
|||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(curParam) }); |
|||
} |
|||
}, |
|||
refreshData: function () { |
|||
page.search(); |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,89 @@ |
|||
@{ |
|||
ViewData["Title"] = "供应商表单"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
|
|||
<div id="form" class="lr-form-wrap" formAuth="yes"> |
|||
<div class="col-xs-6 lr-form-item"> |
|||
<div class="lr-form-item-title">名称<font face="宋体">*</font></div> |
|||
<input id="Name" type="text" class="form-control" placeholder="请输入名称" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-6 lr-form-item"> |
|||
<div class="lr-form-item-title">负责人</div> |
|||
<input id="Manager" type="text" class="form-control" placeholder="请输入负责人" /> |
|||
</div> |
|||
<div class="col-xs-6 lr-form-item"> |
|||
<div class="lr-form-item-title">电话</div> |
|||
<input id="FixedPhone" type="text" class="form-control" placeholder="请输入电话" /> |
|||
@*<input id="FixedPhone" type="text" class="form-control" placeholder="请输入电话" isvalid="yes" checkexpession="Telephone" />*@ |
|||
</div> |
|||
<div class="col-xs-6 lr-form-item"> |
|||
<div class="lr-form-item-title">手机</div> |
|||
<input id="MobilePhone" type="text" class="form-control" placeholder="请输入手机" /> |
|||
</div> |
|||
<div class="col-xs-6 lr-form-item"> |
|||
<div class="lr-form-item-title">邮箱</div> |
|||
<input id="Email" type="text" class="form-control" placeholder="请输入邮箱" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">公司地点</div> |
|||
<div id="area" class="col-xs-6 lr-form-area"> |
|||
<div id="F_ProvinceId" placeholder="省" class="col-xs-4"></div> |
|||
<div id="F_CityId" placeholder="市" class="col-xs-4"></div> |
|||
<div id="F_CountyId" placeholder="县/区" class="col-xs-4"></div> |
|||
</div> |
|||
<div class="col-xs-6"> |
|||
<input id="Address" type="text" placeholder="请输入详细地址" class="form-control" /> |
|||
</div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">备注</div> |
|||
<textarea id="Remark" class="form-control" style="height:90px;"></textarea> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
var selectedRow = learun.frameTab.currentIframe().selectedRow; |
|||
var keyValue = !!selectedRow ? selectedRow.Id : ''; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
}, |
|||
bind: function () { |
|||
$('#area').lrAreaSelect();// 省市区 |
|||
}, |
|||
initData: function () { |
|||
if (!!selectedRow) { |
|||
$('#form').lrSetFormData(selectedRow); |
|||
} |
|||
}, |
|||
validForm: function (code) { |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
save: function (processId, callback) { |
|||
var postData = $('body').lrGetFormData(); |
|||
postData.Id = processId; |
|||
$.lrSaveForm(top.$.rootUrl + '/AutoWeight/Supplier/SaveForm', postData, function (res) { |
|||
// 保存成功后才回调 |
|||
callback && callback(res); |
|||
}); |
|||
} |
|||
}; |
|||
// 保存数据 |
|||
window.acceptClick = function (callback) { |
|||
if (page.validForm()) { |
|||
page.save(keyValue, function (res) { |
|||
callback && callback(); |
|||
}); |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,221 @@ |
|||
@{ |
|||
ViewData["Title"] = "供应商管理"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
|
|||
<div class="lr-layout"> |
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap lr-layout-wrap-notitle"> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<div id="datesearch" class="datetime"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字"/> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_hint" class="fa fa-question-circle" style="font-size: 18px; color: orange;"></a> |
|||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> <span class="lrlg">查询</span></a> |
|||
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i> <span class="lrlg">重置</span></a> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
<div class="btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="btn_add" class="btn btn-default"><i class="fa fa-plus"></i> <span class="lrlg">新增</span></a> |
|||
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></a> |
|||
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></a> |
|||
<a id="btn_print" class="btn btn-default"><i class="fa fa-print"></i> <span class="lrlg">打印</span></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body" id="gridtable"></div> |
|||
|
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var selectedRow; |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
Keyword: '' |
|||
}; |
|||
var checkJustReturn = false; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initGrid(); |
|||
}, |
|||
bind: function () { |
|||
//日期查询 |
|||
$('.datetime').each(function () { |
|||
$(this).lrdate({ |
|||
//初始值 |
|||
dfdata: [ |
|||
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近1月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近3月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
], |
|||
// 初始索引值 |
|||
dfvalue: '-1', |
|||
selectfn: function (begin, end) { |
|||
curParam.StartTime = begin; |
|||
curParam.EndTime = end; |
|||
page.search(); |
|||
} |
|||
}); |
|||
}); |
|||
//提示 |
|||
$('#btn_hint').popover({ |
|||
trigger: 'hover',//触发方式 |
|||
placement: 'right',//弹出框位置 |
|||
html: true,//添加data-html="true"之后,data-content里面就可以添加HTML代码 |
|||
//title: 'title', |
|||
content: " 查询时间:<br>创建时间<br>" + |
|||
" 查询关键字:<br>供应商名、负责人", |
|||
container: 'body' |
|||
}); |
|||
// 查询 |
|||
$('#btn_Search').on('click', function () { |
|||
curParam.Keyword = $('#txt_Keyword').val(); |
|||
page.search(); |
|||
}); |
|||
// 重置 |
|||
$('#btn_Reset').on('click', function () { |
|||
curParam = {}; |
|||
checkJustReturn = true; |
|||
$('#datesearch').find('.lr-search-date-btn-block:last').find('a').click(); |
|||
$('#txt_Keyword').val(''); |
|||
checkJustReturn = false; |
|||
page.search(); |
|||
}); |
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
//新增 |
|||
$('#btn_add').on('click', function () { |
|||
selectedRow = null; |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '新增', |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/Form', |
|||
width: 750, |
|||
height: 450, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
}); |
|||
//编辑 |
|||
$('#btn_edit').on('click', function () { |
|||
selectedRow = $('#gridtable').jfGridGet('rowdata'); |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '编辑', |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/Form', |
|||
width: 750, |
|||
height: 450, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
//删除 |
|||
$('#btn_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该项!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/AutoWeight/Supplier/DeleteForm', { keyValue: keyValue }, function () { |
|||
page.refreshData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
initGrid: function () { |
|||
$('#gridtable').lrAuthorizeJfGrid({ |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetPageList', |
|||
isPage: true, |
|||
mainId: 'Id', |
|||
rows: 30, |
|||
sidx: '',//排序字段只有在分页的情况下支持,多个字段用,隔开 |
|||
headData: [ |
|||
{ |
|||
label: "Id", name: "Id", ishide: true |
|||
}, |
|||
{ |
|||
label: "名称", name: "Name", width: 150, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "负责人", name: "Manager", width: 80, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "电话", name: "FixedPhone", width: 120, align: "center" |
|||
}, |
|||
{ |
|||
label: "手机", name: "MobilePhone", width: 120, align: "center" |
|||
}, |
|||
{ |
|||
label: "邮箱", name: "Email", width: 120, align: "center" |
|||
}, |
|||
{ |
|||
label: "创建者", name: "CreateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "创建时间", name: "CreateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "更新者", name: "UpdateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "更新时间", name: "UpdateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "备注", name: "Remark", align: "left" |
|||
} |
|||
] |
|||
}); |
|||
page.search(); |
|||
}, |
|||
beforeSearch: function () { |
|||
if (checkJustReturn) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
search: function (param) { |
|||
if (page.beforeSearch()) { |
|||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(curParam) }); |
|||
} |
|||
}, |
|||
refreshData: function () { |
|||
page.search(); |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,124 @@ |
|||
@{ |
|||
ViewData["Title"] = "测试"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
|
|||
<OBJECT ID="ObjPrint" style="display:none" CLASSID="CLSID:{A12BED81-5E58-464C-A074-A686891B5B15}" codebase="PRINTOCX.ocx"> |
|||
</OBJECT> |
|||
|
|||
<form id="form1" name="form1"> |
|||
<input type="button" value="走纸" onclick="FeedPaper()"> |
|||
<input type="button" value="打印" onclick="PrintString()"> |
|||
<input type="button" value="切纸" onclick="CutPaper()"> |
|||
<input type="button" value="版本 " onclick="TestAbout()"> |
|||
</form> |
|||
|
|||
<script language="javascript"> |
|||
Object.assign = Object.assign || function (target) { |
|||
'use strict'; |
|||
if (target == null) { |
|||
throw new TypeError('Cannot convert undefined or null to object'); |
|||
} |
|||
|
|||
target = Object(0,target); |
|||
for (var index = 1; index < arguments.length; index++) { |
|||
var source = arguments[index]; |
|||
if (source != null) { |
|||
for (var key in source) { |
|||
if (Object.prototype.hasOwnProperty.call(source, key)) { |
|||
target[key] = source[key]; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
return target; |
|||
}; |
|||
|
|||
var printManager = { |
|||
obj: null,//oxc对象 |
|||
param: { |
|||
port: 13, |
|||
baudRate: 0 |
|||
//port: 0x04837540, |
|||
//baudRate: 38400 |
|||
}, |
|||
init: function (obj, param) { |
|||
this.obj = obj; |
|||
console.log(obj); |
|||
Object.assign(this.param, param);//ie下需兼容(已兼容,/View/Shared/_Index.cshtml) |
|||
}, |
|||
//切纸 |
|||
cutPaper: function () { |
|||
var obj = this.obj; |
|||
return obj.CutPaper(this.param.port, this.param.baudRate); |
|||
}, |
|||
//走纸(iMm,单位毫米,让打印机走纸) |
|||
feedPaper: function (iMn) { |
|||
var obj = this.obj; |
|||
return obj.FeedPaper(this.param.port, this.param.baudRate, iMn); |
|||
}, |
|||
//打印字符串(str, 要打印的字符串,后面带回车符,马上打印出字符串,后面没带回车符,要满行时或使用走纸命令FeedPaper才会打印出字符串) |
|||
printString: function (str) { |
|||
var obj = this.obj; |
|||
return obj.PrintString(this.param.port, this.param.baudRate, str, str.length); |
|||
}, |
|||
//打印 code39 条形码(str,要打印条码的条码内容字符串) |
|||
printCode39: function (str) { |
|||
var obj = this.obj; |
|||
return obj.PrintCode39(this.param.port, this.param.baudRate, str, str.length); |
|||
}, |
|||
//打印运单 |
|||
printBill: function (billEntity) { |
|||
var content = ""; |
|||
//content += "运单号:\t" + billEntity.SerialNumber + "\n"; |
|||
//content += "场地:\t" + billEntity.SiteName + "\n"; |
|||
//content += "供应商:\t" + billEntity.SupplierName + "\n"; |
|||
//content += "运输员:\t" + billEntity.DriverName + "\n"; |
|||
//content += "运输车:\t" + billEntity.LicensePlate + "\n"; |
|||
//content += "料号:\t" + billEntity.MaterialNo + "\n"; |
|||
//content += "运单重量:\t" + billEntity.BillWeight + "\n"; |
|||
//content += "入场重量:\t" + billEntity.InWeight + "\n"; |
|||
//content += "出场重量:\t" + billEntity.OutWeight + "\n"; |
|||
//content += "实际重量:\t" + billEntity.NetWeight + "\n"; |
|||
//content += "入场时间:\t" + billEntity.InStartTime + "\n"; |
|||
//content += "出场时间:\t" + billEntity.OutFinishTime + "\n"; |
|||
this.printString(content); |
|||
}, |
|||
//关于 |
|||
aboutBox: function () { |
|||
var obj = this.obj; |
|||
obj.AboutBox(); |
|||
obj.GetVersion(); |
|||
}, |
|||
canUse: function () { |
|||
var obj = this.obj; |
|||
return (!!obj && !!obj.PrintString && typeof (obj.PrintString) == "unknown"); |
|||
}, |
|||
showAlert: function (msg) { |
|||
alert(msg); |
|||
}, |
|||
showConsole: function (msg) { |
|||
console.log(msg); |
|||
} |
|||
} |
|||
|
|||
var objPrint = document.getElementById("ObjPrint"); |
|||
printManager.init(objPrint); |
|||
|
|||
function FeedPaper() { |
|||
console.log(printManager.feedPaper(1)); |
|||
} |
|||
|
|||
function PrintString() { |
|||
console.log(printManager.printString("123456789\n")); |
|||
} |
|||
|
|||
function CutPaper() { |
|||
console.log(printManager.cutPaper()); |
|||
} |
|||
|
|||
function TestAbout() { |
|||
printManager.aboutBox(); |
|||
} |
|||
|
|||
</script> |
|||
@ -0,0 +1,69 @@ |
|||
@{ |
|||
ViewData["Title"] = "挂车表单"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
|
|||
<div id="form" class="lr-form-wrap" formAuth="yes"> |
|||
<input id="SupplierId" type="hidden" /> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">车牌号<font face="宋体">*</font></div> |
|||
<input id="LicensePlate" type="text" class="form-control" placeholder="请输入车牌号" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">备注</div> |
|||
<textarea id="Remark" class="form-control" style="height:90px;"></textarea> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
var selectedRow = learun.frameTab.currentIframe().selectedRow; |
|||
var supplierId = request('supplierId'); |
|||
var keyValue = !!selectedRow ? selectedRow.Id : ''; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
}, |
|||
bind: function () { |
|||
/*检测重复项*/ |
|||
$('#LicensePlate').on('blur', function () { |
|||
$.lrExistField(keyValue, 'LicensePlate', 'aw_Trailer', 'Id'); |
|||
}); |
|||
}, |
|||
initData: function () { |
|||
if (!!selectedRow) { |
|||
$('#form').lrSetFormData(selectedRow); |
|||
} |
|||
else { |
|||
$('#SupplierId').val(supplierId); |
|||
} |
|||
}, |
|||
validForm: function (code) { |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
save: function (processId, callback) { |
|||
var postData = $('body').lrGetFormData(); |
|||
postData.Id = processId; |
|||
$.lrSaveForm(top.$.rootUrl + '/AutoWeight/Trailer/SaveForm', postData, function (res) { |
|||
// 保存成功后才回调 |
|||
callback && callback(res); |
|||
}); |
|||
} |
|||
}; |
|||
// 保存数据 |
|||
window.acceptClick = function (callback) { |
|||
if (page.validForm()) { |
|||
page.save(keyValue, function (res) { |
|||
callback && callback(); |
|||
}); |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,246 @@ |
|||
@{ |
|||
ViewData["Title"] = "挂车管理"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
|
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">供应商信息</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择供应商</span> - <span class="lrlg">挂车信息</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<div id="datesearch" class="datetime"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" /> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_hint" class="fa fa-question-circle" style="font-size: 18px; color: orange;"></a> |
|||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> <span class="lrlg">查询</span></a> |
|||
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i> <span class="lrlg">重置</span></a> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
<div class="btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="btn_add" class="btn btn-default"><i class="fa fa-plus"></i> <span class="lrlg">新增</span></a> |
|||
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></a> |
|||
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body" id="gridtable"></div> |
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
|
|||
<script> |
|||
var selectedRow; |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
SupplierId: '', |
|||
Keyword: '' |
|||
}; |
|||
var checkJustReturn = false; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
}, |
|||
bind: function () { |
|||
//日期查询 |
|||
$('.datetime').each(function () { |
|||
$(this).lrdate({ |
|||
//初始值 |
|||
dfdata: [ |
|||
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近1月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近3月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
], |
|||
// 初始索引值 |
|||
dfvalue: '-1', |
|||
selectfn: function (begin, end) { |
|||
curParam.StartTime = begin; |
|||
curParam.EndTime = end; |
|||
page.search(); |
|||
} |
|||
}); |
|||
}); |
|||
$('#btn_hint').popover({ |
|||
trigger: 'hover',//触发方式 |
|||
placement: 'right',//弹出框位置 |
|||
html: true,//添加data-html="true"之后,data-content里面就可以添加HTML代码 |
|||
//title: 'title', |
|||
content: " 查询时间:<br>创建时间<br>" + |
|||
" 查询关键字:<br>车牌号", |
|||
container: 'body' |
|||
}); |
|||
// 查询 |
|||
$('#btn_Search').on('click', function () { |
|||
curParam.Keyword = $('#txt_Keyword').val(); |
|||
page.search(); |
|||
}); |
|||
// 重置 |
|||
$('#btn_Reset').on('click', function () { |
|||
var tempId = curParam.SupplierId; |
|||
curParam = {}; |
|||
curParam.SupplierId = tempId; |
|||
checkJustReturn = true; |
|||
$('#datesearch').find('.lr-search-date-btn-block:last').find('a').click(); |
|||
$('#txt_Keyword').val(''); |
|||
checkJustReturn = false; |
|||
page.search(); |
|||
}); |
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
//新增 |
|||
$('#btn_add').on('click', function () { |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
selectedRow = null; |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '新增', |
|||
url: top.$.rootUrl + '/AutoWeight/Trailer/Form?supplierId=' + curParam.SupplierId, |
|||
width: 750, |
|||
height: 450, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
}); |
|||
//编辑 |
|||
$('#btn_edit').on('click', function () { |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
selectedRow = $('#gridtable').jfGridGet('rowdata'); |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '编辑', |
|||
url: top.$.rootUrl + '/AutoWeight/Trailer/Form?supplierId=' + curParam.SupplierId, |
|||
width: 750, |
|||
height: 450, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
//删除 |
|||
$('#btn_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该项!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/AutoWeight/Trailer/DeleteForm', { keyValue: keyValue }, function () { |
|||
page.refreshData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
nodeClick: page.treeNodeClick |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.SupplierId = item.id; |
|||
page.search(); |
|||
}, |
|||
initGrid: function () { |
|||
$('#gridtable').lrAuthorizeJfGrid({ |
|||
url: top.$.rootUrl + '/AutoWeight/Trailer/GetPageList', |
|||
isPage: true, |
|||
mainId: 'Id', |
|||
rows: 30, |
|||
sidx: '',//排序字段只有在分页的情况下支持,多个字段用,隔开 |
|||
headData: [ |
|||
{ |
|||
label: "Id", name: "Id", ishide: true |
|||
}, |
|||
{ |
|||
label: "车牌号", name: "LicensePlate", width: 100, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "创建者", name: "CreateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "创建时间", name: "CreateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "更新者", name: "UpdateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "更新时间", name: "UpdateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "备注", name: "Remark", width: 400, align: "left" |
|||
} |
|||
] |
|||
}); |
|||
}, |
|||
beforeSearch: function () { |
|||
if (checkJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
search: function (param) { |
|||
if (page.beforeSearch()) { |
|||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(curParam) }); |
|||
} |
|||
}, |
|||
refreshData: function () { |
|||
page.search(); |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,253 @@ |
|||
@{ |
|||
ViewData["Title"] = "运单表单"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
|
|||
<div id="form" class="lr-form-wrap" formAuth="yes"> |
|||
<input id="CompanyId" type="hidden" /> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">场地<font face="宋体">*</font></div> |
|||
<div id="SiteId" isvalid="yes" checkexpession="NotNull"></div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">供应商<font face="宋体">*</font></div> |
|||
<div id="SupplierId" isvalid="yes" checkexpession="NotNull"></div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">月计划序号<font face="宋体">*</font></div> |
|||
<div id="PlanSerialNumber" isvalid="yes" checkexpession="NotNull"></div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">运输车<font face="宋体">*</font></div> |
|||
<div id="TruckId" isvalid="yes" checkexpession="NotNull"></div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">挂车<font face="宋体">*</font></div> |
|||
<div id="TrailerId" isvalid="yes" checkexpession="NotNull"></div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">运输员<font face="宋体">*</font></div> |
|||
<div id="DriverId" isvalid="yes" checkexpession="NotNull"></div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">押运员<font face="宋体">*</font></div> |
|||
<div id="Driver2Id" isvalid="yes" checkexpession="NotNull"></div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">单重<font face="宋体">*</font></div> |
|||
<input id="BillWeight" type="text" class="form-control" placeholder="请输入单重" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">驶入重量<font face="宋体">*</font></div> |
|||
<input id="InWeight" type="text" class="form-control" placeholder="请输入输入重量" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">驶出重量<font face="宋体">*</font></div> |
|||
<input id="OutWeight" type="text" class="form-control" placeholder="请输入驶出重量" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">状态<font face="宋体">*</font></div> |
|||
<div id="State" isvalid="yes" checkexpession="NotNull"> |
|||
<ul style="display:none;"> |
|||
<li data-value="10">入场开始</li> |
|||
@*<li data-value="11">入场称重</li>*@ |
|||
<li data-value="12">入场结束</li> |
|||
<li data-value="20">出场开始</li> |
|||
@*<li data-value="21">出场称重</li> |
|||
<li data-value="22">出场打印</li>*@ |
|||
<li data-value="23">出场结束</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">备注</div> |
|||
<textarea id="Remark" class="form-control" style="height: 90px;"></textarea> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var selectedRow = learun.frameTab.currentIframe().selectedRow; |
|||
var companyId = request('companyId'); |
|||
var keyValue = !!selectedRow ? selectedRow.Id : ''; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
}, |
|||
bind: function () { |
|||
// 供应商 |
|||
$('#SupplierId').lrselect({ |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
allowSearch: true, |
|||
select: function (data) { |
|||
if (!data || !data.id) |
|||
return; |
|||
if (!!selectedRow && data.id == selectedRow.SupplierId) |
|||
return; |
|||
var supplierId = data.id; |
|||
// 月计划 |
|||
$('#PlanSerialNumber').lrselectRefresh({ |
|||
url: top.$.rootUrl + '/AutoWeight/MonthPlan/GetTree', |
|||
param: { |
|||
"CompanyId" : companyId, |
|||
"SupplierId": supplierId |
|||
}, |
|||
type: 'tree', |
|||
allowSearch: true |
|||
}); |
|||
|
|||
// 运输车 |
|||
$('#TruckId').lrselectRefresh({ |
|||
url: top.$.rootUrl + '/AutoWeight/Truck/GetTree', |
|||
param: { |
|||
"SupplierId" : supplierId |
|||
}, |
|||
type: 'tree', |
|||
allowSearch: true |
|||
}); |
|||
|
|||
// 挂车 |
|||
$('#TrailerId').lrselectRefresh({ |
|||
url: top.$.rootUrl + '/AutoWeight/Trailer/GetTree', |
|||
param: { |
|||
"SupplierId" : supplierId |
|||
}, |
|||
type: 'tree', |
|||
allowSearch: true |
|||
}); |
|||
|
|||
// 运输员 |
|||
$('#DriverId').lrselectRefresh({ |
|||
url: top.$.rootUrl + '/AutoWeight/Driver/GetTree', |
|||
param: { |
|||
"SupplierId": supplierId |
|||
}, |
|||
type: 'tree', |
|||
allowSearch: true |
|||
}); |
|||
|
|||
// 押运员 |
|||
$('#Driver2Id').lrselectRefresh({ |
|||
url: top.$.rootUrl + '/AutoWeight/Driver/GetTree', |
|||
param: { |
|||
"SupplierId": supplierId |
|||
}, |
|||
type: 'tree', |
|||
allowSearch: true |
|||
}); |
|||
|
|||
} |
|||
}); |
|||
if (!!selectedRow && !!selectedRow.Id) { |
|||
// 月计划 |
|||
$('#PlanSerialNumber').lrselect({ |
|||
url: top.$.rootUrl + '/AutoWeight/MonthPlan/GetTree', |
|||
param: { |
|||
"CompanyId" : companyId, |
|||
"SupplierId": selectedRow.SupplierId |
|||
}, |
|||
type: 'tree', |
|||
allowSearch: true |
|||
}); |
|||
|
|||
// 运输车 |
|||
$('#TruckId').lrselect({ |
|||
url: top.$.rootUrl + '/AutoWeight/Truck/GetTree', |
|||
param: { |
|||
"SupplierId": selectedRow.SupplierId |
|||
}, |
|||
type: 'tree', |
|||
allowSearch: true |
|||
}); |
|||
|
|||
// 挂车 |
|||
$('#TrailerId').lrselect({ |
|||
url: top.$.rootUrl + '/AutoWeight/Trailer/GetTree', |
|||
param: { |
|||
"SupplierId": selectedRow.SupplierId |
|||
}, |
|||
type: 'tree', |
|||
allowSearch: true |
|||
}); |
|||
|
|||
// 运输员 |
|||
$('#DriverId').lrselect({ |
|||
url: top.$.rootUrl + '/AutoWeight/Driver/GetTree', |
|||
param: { |
|||
"SupplierId": selectedRow.SupplierId |
|||
}, |
|||
type: 'tree', |
|||
allowSearch: true |
|||
}); |
|||
|
|||
// 押运员 |
|||
$('#Driver2Id').lrselect({ |
|||
url: top.$.rootUrl + '/AutoWeight/Driver/GetTree', |
|||
param: { |
|||
"SupplierId": selectedRow.SupplierId |
|||
}, |
|||
type: 'tree', |
|||
allowSearch: true |
|||
}); |
|||
|
|||
} else { |
|||
$('#PlanSerialNumber').lrselect({ allowSearch: true }); |
|||
$('#TruckId').lrselect({ allowSearch: true }); |
|||
$('#TrailerId').lrselect({ allowSearch: true }); |
|||
$('#DriverId').lrselect({ allowSearch: true }); |
|||
$('#Driver2Id').lrselect({ allowSearch: true }); |
|||
} |
|||
|
|||
// 场地 |
|||
$('#SiteId').lrselect({ |
|||
url: top.$.rootUrl + '/AutoWeight/Site/GetTree', |
|||
param: { |
|||
"CompanyId" : companyId |
|||
}, |
|||
type: 'tree', |
|||
allowSearch: true |
|||
}); |
|||
|
|||
// 状态 |
|||
$('#State').lrselect(); |
|||
}, |
|||
initData: function () { |
|||
if (!!selectedRow) { |
|||
$('#form').lrSetFormData(selectedRow); |
|||
} |
|||
else { |
|||
$('#CompanyId').val(companyId); |
|||
} |
|||
}, |
|||
validForm: function (code) { |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
save: function (processId, callback) { |
|||
var postData = $('body').lrGetFormData(); |
|||
postData.Id = processId; |
|||
|
|||
$.lrSaveForm(top.$.rootUrl + '/AutoWeight/TransportBill/SaveForm', postData, function (res) { |
|||
// 保存成功后才回调 |
|||
callback && callback(res); |
|||
}); |
|||
} |
|||
}; |
|||
// 保存数据 |
|||
window.acceptClick = function (callback) { |
|||
if (page.validForm()) { |
|||
page.save(keyValue, function (res) { |
|||
callback && callback(); |
|||
}); |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,609 @@ |
|||
@{ |
|||
ViewData["Title"] = "运单管理"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
|
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">公司信息</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择公司</span> - <span class="lrlg">运单信息</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
|
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<div id="datesearch" class="datetime"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item" style="width: 160px;"> |
|||
<div id="supplier_select" style="border-radius: 4px;"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" /> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_hint" class="fa fa-question-circle" style="font-size: 18px; color: orange;"></a> |
|||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> <span class="lrlg">查询</span></a> |
|||
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i> <span class="lrlg">重置</span></a> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
<div class="btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="btn_add" class="btn btn-default"><i class="fa fa-plus"></i> <span class="lrlg">新增</span></a> |
|||
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></a> |
|||
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></a> |
|||
<a id="btn_export" class="btn btn-default"><i class="fa fa-sign-out"></i> <span class="lrlg">导出</span></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body" id="gridtable"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<style> |
|||
#mask { |
|||
position: fixed; |
|||
left: 0; |
|||
top: 0; |
|||
right: 0; |
|||
bottom: 0; |
|||
background-color: #000; |
|||
opacity: 0.5; |
|||
filter: Alpha(opacity=50); |
|||
z-index: 98; |
|||
transition: all 1s; |
|||
display: none; |
|||
} |
|||
|
|||
#mask:hover { |
|||
cursor: zoom-out; |
|||
} |
|||
|
|||
#mask > img { |
|||
position: fixed; |
|||
right: 10px; |
|||
top: 10px; |
|||
width: 60px; |
|||
cursor: auto; |
|||
} |
|||
|
|||
#mask > img:hover { |
|||
cursor: pointer; |
|||
} |
|||
|
|||
#bigImg { |
|||
position: fixed; |
|||
left: 0; |
|||
top: 0; |
|||
right: 0; |
|||
bottom: 0; |
|||
margin: auto; |
|||
display: none; |
|||
z-index: 9999; |
|||
} |
|||
</style> |
|||
|
|||
<div> |
|||
<div id="mask"> |
|||
<img src="/img/close.png" alt=""> |
|||
</div> |
|||
<img id="bigImg" src="" alt=""> |
|||
</div> |
|||
|
|||
<OBJECT ID="ObjPrint" style="display:none" CLASSID="CLSID:{A12BED81-5E58-464C-A074-A686891B5B15}" codebase="PRINTOCX.ocx"> |
|||
</OBJECT> |
|||
|
|||
<script> |
|||
var selectedRow; |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
CompanyId: '', |
|||
SupplierId: '', |
|||
Keyword: '' |
|||
}; |
|||
var billState = { |
|||
"10": "入场开始", //use |
|||
"11": "入场称重", |
|||
"12": "入场结束", //use |
|||
"20": "出场开始", //use |
|||
"21": "出场称重", |
|||
"22": "出场打印", |
|||
"23": "出场结束" //use |
|||
}; |
|||
var checkJustReturn = false; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
page.bindPrintOcx(); |
|||
}, |
|||
bind: function () { |
|||
// 供应商选择 |
|||
$('#supplier_select').lrselect({ |
|||
// 访问数据接口地址 |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
type: 'tree', |
|||
placeholder: '请选择供应商', |
|||
// 是否允许搜索 |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
curParam.SupplierId = (!!item && item.id > 0) ? item.id : ''; |
|||
page.search(); |
|||
} |
|||
}); |
|||
//日期查询 |
|||
$('.datetime').each(function () { |
|||
$(this).lrdate({ |
|||
//初始值 |
|||
dfdata: [ |
|||
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近1月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近3月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } } |
|||
], |
|||
// 初始索引值 |
|||
dfvalue: '0', |
|||
selectfn: function (begin, end) { |
|||
curParam.StartTime = begin; |
|||
curParam.EndTime = end; |
|||
if (!curParam.CompanyId) { |
|||
return; |
|||
} |
|||
page.search(); |
|||
} |
|||
}); |
|||
}); |
|||
//提示 |
|||
$('#btn_hint').popover({ |
|||
trigger: 'hover', //触发方式 |
|||
placement: 'right', //弹出框位置 |
|||
html: true, //添加data-html="true"之后,data-content里面就可以添加HTML代码 |
|||
//title: 'title', |
|||
content: " 查询时间:<br>驶入开始时间<br>" + |
|||
" 查询关键字:<br>供应商名、月计划序号、车牌号", |
|||
container: 'body' |
|||
}); |
|||
// 查询 |
|||
$('#btn_Search').on('click', function () { |
|||
curParam.Keyword = $('#txt_Keyword').val(); |
|||
page.search(); |
|||
}); |
|||
// 重置 |
|||
$('#btn_Reset').on('click', function () { |
|||
var tempId = curParam.CompanyId; |
|||
curParam = {}; |
|||
curParam.CompanyId = tempId; |
|||
checkJustReturn = true; |
|||
$('#datesearch').find('.lr-search-date-btn-block:first').find('a:first').click(); |
|||
console.log(); |
|||
$('#txt_Keyword').val(''); |
|||
checkJustReturn = false; |
|||
page.search(); |
|||
}); |
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
// 新增 |
|||
$('#btn_add').on('click', function () { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
selectedRow = null; |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '新增', |
|||
url: top.$.rootUrl + '/AutoWeight/TransportBill/Form?companyId=' + curParam.CompanyId, |
|||
height: 600, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
}); |
|||
// 编辑 |
|||
$('#btn_edit').on('click', function () { |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
selectedRow = $('#gridtable').jfGridGet('rowdata'); |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '编辑', |
|||
url: top.$.rootUrl + '/AutoWeight/TransportBill/Form?companyId=' + curParam.CompanyId, |
|||
height: 600, |
|||
width: 600, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
// 删除 |
|||
$('#btn_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该项!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/AutoWeight/TransportBill/DeleteForm', |
|||
{ keyValue: keyValue }, |
|||
function () { |
|||
page.refreshData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
// 导出 |
|||
$('#btn_export').on('click', function () { |
|||
let names = []; |
|||
let index = $('#supplier_select').lrselectGet() || -1; |
|||
if (index >= 0) { names.push(supplier_select.innerText); } |
|||
names.push(new Date().format("yyyyMMddhhmmss")); |
|||
names.push('@ViewData["Title"]'); |
|||
|
|||
learun.layerForm({ |
|||
id: "ExcelExportForm", |
|||
title: '导出Excel数据', |
|||
url: top.$.rootUrl + '/Utility/ExcelExportForm?gridId=gridtable&filename=' + encodeURI(names.join('_')), |
|||
width: 500, |
|||
height: 380, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(); |
|||
}, |
|||
btn: ['导出Excel', '关闭'] |
|||
}); |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree2', |
|||
nodeClick: page.treeNodeClick, |
|||
callback: function () { |
|||
$('#companyTree').lrtreeSet("clickFirst"); |
|||
} |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.CompanyId = item.id; |
|||
page.search(); |
|||
}, |
|||
initGrid: function () { |
|||
$('#gridtable').lrAuthorizeJfGrid({ |
|||
url: top.$.rootUrl + '/AutoWeight/TransportBill/GetPageList', |
|||
isPage: true, |
|||
mainId: 'Id', |
|||
rows: 30, |
|||
sidx: '', //排序字段只有在分页的情况下支持,多个字段用,隔开 |
|||
headData: [ |
|||
{ |
|||
label: "Id", name: "Id", ishide: true |
|||
}, |
|||
{ |
|||
label: "序号", name: "SerialNumber", width: 100, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "供应商", name: "SupplierName", width: 80, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "月计划序号", name: "PlanSerialNumber", width: 100, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "料号", name: "MaterialNo", width: 100, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "场地", name: "SiteName", width: 100, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "运输车", name: "LicensePlate", width: 80, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "挂车", name: "TrailerPlate", width: 90, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "运输员", name: "DriverName", width: 80, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "押运员", name: "Driver2Name", width: 80, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "单重", name: "BillWeight", width: 60, align: "center" |
|||
}, |
|||
{ |
|||
label: "净重", name: "NetWeight", width: 60, align: "center" |
|||
}, |
|||
{ |
|||
label: "达标率", name: "StandardRate", width: 70, align: "center", formatter: function (value, row, op, $cell) { |
|||
//return !!value ? value.toFixed(2) + "%" : ''; |
|||
return value.toFixed(2) + "%"; |
|||
} |
|||
}, |
|||
{ |
|||
label: "驶入重量", name: "InWeight", width: 60, align: "center" |
|||
}, |
|||
{ |
|||
label: "驶出重量", name: "OutWeight", width: 60, align: "center" |
|||
}, |
|||
{ |
|||
label: '驶入前车牌', name: 'InPicture1', width: 80, align: "center", formatter: function (value, row, op, $cell) { |
|||
if (!value) |
|||
return ''; |
|||
return '<button class="btn btn-info btn-sm" data-img="' + value + '" onClick="showPhoto(this)">查看</button>'; |
|||
} |
|||
}, |
|||
{ |
|||
label: '驶入后车牌', name: 'InPicture2', width: 80, align: "center", formatter: function (value, row, op, $cell) { |
|||
if (!value) |
|||
return ''; |
|||
return '<button class="btn btn-info btn-sm" data-img="' + value + '" onClick="showPhoto(this)">查看</button>'; |
|||
} |
|||
}, |
|||
{ |
|||
label: '驶出前车牌', name: 'OutPicture1', width: 80, align: "center", formatter: function (value, row, op, $cell) { |
|||
if (!value) |
|||
return ''; |
|||
return '<button class="btn btn-info btn-sm" data-img="' + value + '" onClick="showPhoto(this)">查看</button>'; |
|||
} |
|||
}, |
|||
{ |
|||
label: '驶出后车牌', name: 'OutPicture2', width: 80, align: "center", formatter: function (value, row, op, $cell) { |
|||
if (!value) |
|||
return ''; |
|||
return '<button class="btn btn-info btn-sm" data-img="' + value + '" onClick="showPhoto(this)">查看</button>'; |
|||
} |
|||
}, |
|||
{ |
|||
label: "状态", name: "State", width: 65, align: "center", formatter: function (value) { |
|||
return billState[value] || ""; |
|||
} |
|||
}, |
|||
{ |
|||
label: "驶入开始时间", name: "InStartTime", width: 150, align: "center", formatter: function (value, row, op, $cell) { |
|||
return (!!value && !value.startsWith("0001-01-01")) ? value : ""; |
|||
//return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "驶入结束时间", name: "InFinishTime", width: 150, align: "center", formatter: function (value, row, op, $cell) { |
|||
return (!!value && !value.startsWith("0001-01-01")) ? value : ""; |
|||
} |
|||
}, |
|||
{ |
|||
label: "驶出开始时间", name: "OutStartTime", width: 150, align: "center", formatter: function (value, row, op, $cell) { |
|||
return (!!value && !value.startsWith("0001-01-01")) ? value : ""; |
|||
} |
|||
}, |
|||
{ |
|||
label: "驶出结束时间", name: "OutFinishTime", width: 150, align: "center", formatter: function (value, row, op, $cell) { |
|||
return (!!value && !value.startsWith("0001-01-01")) ? value : ""; |
|||
} |
|||
}, |
|||
{ |
|||
label: "备注", name: "Remark", align: "left" |
|||
} |
|||
] |
|||
}); |
|||
}, |
|||
beforeSearch: function () { |
|||
if (checkJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.CompanyId) { |
|||
learun.alert.warning('请选择公司!'); |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
search: function (param) { |
|||
if (page.beforeSearch()) { |
|||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(curParam) }); |
|||
} |
|||
}, |
|||
refreshData: function () { |
|||
page.search(); |
|||
}, |
|||
bindPrintOcx: function () { |
|||
var objPrint = document.getElementById("ObjPrint"); |
|||
printManager.init(objPrint); |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
|
|||
var zoom = { |
|||
init: function (mask, bigImg) { |
|||
this.mask = mask; |
|||
this.bigImg = bigImg; |
|||
this.initListener(); |
|||
this.mouseWheel(); |
|||
}, |
|||
initListener: function () { |
|||
var _this = this; |
|||
$(this.mask).click(function () { |
|||
$(_this.bigImg).hide(); |
|||
$(_this.mask).hide(); |
|||
}); |
|||
}, |
|||
mouseWheel: function () { |
|||
function mousewheel(obj, upFun, downFun) { |
|||
if (document.attachEvent) { |
|||
obj.attachEvent("onmousewheel", scrollFn); |
|||
} else { |
|||
if (document.addEventListener) { |
|||
obj.addEventListener("mousewheel", scrollFn, false); |
|||
obj.addEventListener("DOMMouseScroll", scrollFn, false); |
|||
} |
|||
} |
|||
|
|||
function scrollFn(e) { |
|||
var ev = e || window.event; |
|||
var dir = ev.wheelDelta || ev.detail; |
|||
if (ev.preventDefault) { |
|||
ev.preventDefault(); |
|||
} else { |
|||
ev.returnValue = false; |
|||
} |
|||
if (dir === -3 || dir === 120) { |
|||
upFun(); |
|||
} else { |
|||
downFun(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
mousewheel( |
|||
this.bigImg, |
|||
function () { |
|||
var zoomWidth = $(this.bigImg).width(); |
|||
var zoomHeight = $(this.bigImg).height(); |
|||
var rate = 1.1; |
|||
|
|||
zoomWidth = zoomWidth * rate; |
|||
zoomHeight = zoomHeight * rate; |
|||
|
|||
if (zoomWidth > $("body").width() || zoomHeight > $("body").height()) { |
|||
return; |
|||
} |
|||
|
|||
$(this.bigImg).css("width", zoomWidth); |
|||
$(this.bigImg).css("height", zoomHeight); |
|||
}, |
|||
function () { |
|||
var zoomWidth = $(this.bigImg).width(); |
|||
var zoomHeight = $(this.bigImg).height(); |
|||
var rate = 0.9; |
|||
|
|||
zoomWidth = zoomWidth * rate; |
|||
zoomHeight = zoomHeight * rate; |
|||
|
|||
if (zoomWidth < 100 || zoomHeight < 100) { |
|||
return; |
|||
} |
|||
|
|||
$(this.bigImg).css("width", zoomWidth); |
|||
$(this.bigImg).css("height", zoomHeight); |
|||
} |
|||
); |
|||
}, |
|||
showBigImg: function (src) { |
|||
$(this.mask).show(); |
|||
$(this.bigImg).attr("src", src).show(); |
|||
$(this.bigImg).css("maxWidth", $("body").width()); |
|||
$(this.bigImg).css("maxHeight", $("body").height()); |
|||
$(this.bigImg).css("minWidth", 100); |
|||
$(this.bigImg).css("minHeight", 100); |
|||
} |
|||
} |
|||
zoom.init(document.getElementById("mask"), document.getElementById("bigImg")); |
|||
|
|||
function showPhoto(btn) { |
|||
var src = top.$.rootUrl + '/AutoWeight/Photo/GetImg?keyValue=' + $(btn).attr("data-img"); |
|||
zoom.showBigImg(src); |
|||
} |
|||
|
|||
function focusSearch(companyId, keyword) { |
|||
if (!companyId || !keyword) |
|||
return; |
|||
curParam = {}; |
|||
|
|||
checkJustReturn = true; |
|||
$('#datesearch').find('.lr-search-date-btn-block:first').find('a').click(); |
|||
$('#supplier_select').lrselectSet(-1); |
|||
$('#txt_Keyword').val(''); |
|||
checkJustReturn = false; |
|||
|
|||
$('#txt_Keyword').val(keyword); |
|||
curParam.Keyword = keyword; |
|||
$('#companyTree').lrtreeSet("setValue", companyId); |
|||
} |
|||
|
|||
var printManager = { |
|||
obj: null,//oxc对象 |
|||
param: { |
|||
port: 13, |
|||
baudRate: 0 |
|||
}, |
|||
init: function (obj, param) { |
|||
this.obj = obj; |
|||
Object.assign(this.param, param);//ie下需兼容(已兼容,/View/Shared/_Index.cshtml) |
|||
}, |
|||
//切纸 |
|||
cutPaper: function () { |
|||
var obj = this.obj; |
|||
obj.CutPaper(this.param.port, this.param.baudRate); |
|||
}, |
|||
//走纸(iMm,单位毫米,让打印机走纸) |
|||
feedPaper: function (iMn) { |
|||
var obj = this.obj; |
|||
obj.FeedPaper(this.param.port, this.param.baudRate, iMn); |
|||
}, |
|||
//打印字符串(str, 要打印的字符串,后面带回车符,马上打印出字符串,后面没带回车符,要满行时或使用走纸命令FeedPaper才会打印出字符串) |
|||
printString: function (str) { |
|||
var obj = this.obj; |
|||
obj.PrintString(this.param.port, this.param.baudRate, str, str.length); |
|||
}, |
|||
//打印 code39 条形码(str,要打印条码的条码内容字符串) |
|||
printCode39: function (str) { |
|||
var obj = this.obj; |
|||
obj.PrintCode39(this.param.port, this.param.baudRate, str, str.length); |
|||
}, |
|||
//打印运单 |
|||
printBill: function (billEntity) { |
|||
var content = ""; |
|||
content += "运单号:\t" + billEntity.SerialNumber + "\n"; |
|||
content += "场地:\t\t" + billEntity.SiteName + "\n"; |
|||
content += "供应商:\t" + billEntity.SupplierName + "\n"; |
|||
content += "运输车:\t" + billEntity.LicensePlate + "\n"; |
|||
content += "运输员:\t" + billEntity.DriverName + "\n"; |
|||
content += "料号:\t\t" + billEntity.MaterialNo + "\n"; |
|||
content += "运单重量:\t" + billEntity.BillWeight + "\n"; |
|||
content += "入场重量:\t" + billEntity.InWeight + "\n"; |
|||
content += "出场重量:\t" + billEntity.OutWeight + "\n"; |
|||
content += "实际重量:\t" + billEntity.NetWeight + "\n"; |
|||
content += "入场时间:\t" + billEntity.InStartTime + "\n"; |
|||
content += "出场时间:\t" + billEntity.OutFinishTime + "\n"; |
|||
this.printString(content); |
|||
}, |
|||
//关于 |
|||
aboutBox: function () { |
|||
var obj = this.obj; |
|||
obj.AboutBox(); |
|||
}, |
|||
canUse: function () { |
|||
var obj = this.obj; |
|||
return (!!obj && !!obj.PrintString && typeof (obj.PrintString) == "unknown"); |
|||
}, |
|||
showAlert: function (msg) { |
|||
alert(msg); |
|||
}, |
|||
showConsole: function (msg) { |
|||
console.log(msg); |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,69 @@ |
|||
@{ |
|||
ViewData["Title"] = "运输车表单"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
|
|||
<div id="form" class="lr-form-wrap" formAuth="yes"> |
|||
<input id="SupplierId" type="hidden" /> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">车牌号<font face="宋体">*</font></div> |
|||
<input id="LicensePlate" type="text" class="form-control" placeholder="请输入车牌号" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">备注</div> |
|||
<textarea id="Remark" class="form-control" style="height:90px;"></textarea> |
|||
</div> |
|||
</div> |
|||
|
|||
<script> |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
var selectedRow = learun.frameTab.currentIframe().selectedRow; |
|||
var supplierId = request('supplierId'); |
|||
var keyValue = !!selectedRow ? selectedRow.Id : ''; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
}, |
|||
bind: function () { |
|||
/*检测重复项*/ |
|||
$('#LicensePlate').on('blur', function () { |
|||
$.lrExistField(keyValue, 'LicensePlate', 'aw_truck', 'Id'); |
|||
}); |
|||
}, |
|||
initData: function () { |
|||
if (!!selectedRow) { |
|||
$('#form').lrSetFormData(selectedRow); |
|||
} |
|||
else { |
|||
$('#SupplierId').val(supplierId); |
|||
} |
|||
}, |
|||
validForm: function (code) { |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
save: function (processId, callback) { |
|||
var postData = $('body').lrGetFormData(); |
|||
postData.Id = processId; |
|||
$.lrSaveForm(top.$.rootUrl + '/AutoWeight/Truck/SaveForm', postData, function (res) { |
|||
// 保存成功后才回调 |
|||
callback && callback(res); |
|||
}); |
|||
} |
|||
}; |
|||
// 保存数据 |
|||
window.acceptClick = function (callback) { |
|||
if (page.validForm()) { |
|||
page.save(keyValue, function (res) { |
|||
callback && callback(); |
|||
}); |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,246 @@ |
|||
@{ |
|||
ViewData["Title"] = "运输车管理"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
|
|||
<div id="lr_layout" class="lr-layout lr-layout-left-center"> |
|||
|
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg ">供应商信息</div> |
|||
<div id="companyTree" class="lr-layout-body"></div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
|
|||
<div class="lr-layout-title"> |
|||
<span id="titleinfo" class="lrlg">未选择供应商</span> - <span class="lrlg">运输车信息</span> |
|||
</div> |
|||
|
|||
<div class="lr-layout-tool"> |
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<div id="datesearch" class="datetime"></div> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" /> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_hint" class="fa fa-question-circle" style="font-size: 18px; color: orange;"></a> |
|||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> <span class="lrlg">查询</span></a> |
|||
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i> <span class="lrlg">重置</span></a> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-tool-right"> |
|||
<div class="btn-group btn-group-sm"> |
|||
<a id="btn_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
<div class="btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="btn_add" class="btn btn-default"><i class="fa fa-plus"></i> <span class="lrlg">新增</span></a> |
|||
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></a> |
|||
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body" id="gridtable"></div> |
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
|
|||
<script> |
|||
var selectedRow; |
|||
var curParam = { |
|||
StartTime: '', |
|||
EndTime: '', |
|||
SupplierId: '', |
|||
Keyword: '' |
|||
}; |
|||
var checkJustReturn = false; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initTree(); |
|||
page.initGrid(); |
|||
}, |
|||
bind: function () { |
|||
//日期查询 |
|||
$('.datetime').each(function () { |
|||
$(this).lrdate({ |
|||
//初始值 |
|||
dfdata: [ |
|||
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近1月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
{ name: '近3月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, |
|||
], |
|||
// 初始索引值 |
|||
dfvalue: '-1', |
|||
selectfn: function (begin, end) { |
|||
curParam.StartTime = begin; |
|||
curParam.EndTime = end; |
|||
page.search(); |
|||
} |
|||
}); |
|||
}); |
|||
$('#btn_hint').popover({ |
|||
trigger: 'hover',//触发方式 |
|||
placement: 'right',//弹出框位置 |
|||
html: true,//添加data-html="true"之后,data-content里面就可以添加HTML代码 |
|||
//title: 'title', |
|||
content: " 查询时间:<br>创建时间<br>" + |
|||
" 查询关键字:<br>车牌号", |
|||
container: 'body' |
|||
}); |
|||
// 查询 |
|||
$('#btn_Search').on('click', function () { |
|||
curParam.Keyword = $('#txt_Keyword').val(); |
|||
page.search(); |
|||
}); |
|||
// 重置 |
|||
$('#btn_Reset').on('click', function () { |
|||
var tempId = curParam.SupplierId; |
|||
curParam = {}; |
|||
curParam.SupplierId = tempId; |
|||
checkJustReturn = true; |
|||
$('#datesearch').find('.lr-search-date-btn-block:last').find('a').click(); |
|||
$('#txt_Keyword').val(''); |
|||
checkJustReturn = false; |
|||
page.search(); |
|||
}); |
|||
// 刷新 |
|||
$('#btn_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
//新增 |
|||
$('#btn_add').on('click', function () { |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
selectedRow = null; |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '新增', |
|||
url: top.$.rootUrl + '/AutoWeight/Truck/Form?supplierId=' + curParam.SupplierId, |
|||
width: 750, |
|||
height: 450, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
}); |
|||
//编辑 |
|||
$('#btn_edit').on('click', function () { |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
selectedRow = $('#gridtable').jfGridGet('rowdata'); |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '编辑', |
|||
url: top.$.rootUrl + '/AutoWeight/Truck/Form?supplierId=' + curParam.SupplierId, |
|||
width: 750, |
|||
height: 450, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(page.refreshData); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
//删除 |
|||
$('#btn_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该项!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/AutoWeight/Truck/DeleteForm', { keyValue: keyValue }, function () { |
|||
page.refreshData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
initTree: function () { |
|||
$('#companyTree').lrtree({ |
|||
url: top.$.rootUrl + '/AutoWeight/Supplier/GetTree', |
|||
nodeClick: page.treeNodeClick |
|||
}); |
|||
}, |
|||
treeNodeClick: function (item) { |
|||
$('#titleinfo').text(item.text); |
|||
curParam.SupplierId = item.id; |
|||
page.search(); |
|||
}, |
|||
initGrid: function () { |
|||
$('#gridtable').lrAuthorizeJfGrid({ |
|||
url: top.$.rootUrl + '/AutoWeight/Truck/GetPageList', |
|||
isPage: true, |
|||
mainId: 'Id', |
|||
rows: 100, |
|||
sidx: '',//排序字段只有在分页的情况下支持,多个字段用,隔开 |
|||
headData: [ |
|||
{ |
|||
label: "Id", name: "Id", ishide: true |
|||
}, |
|||
{ |
|||
label: "车牌号", name: "LicensePlate", width: 100, align: "center", frozen: true |
|||
}, |
|||
{ |
|||
label: "创建者", name: "CreateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "创建时间", name: "CreateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "更新者", name: "UpdateMan", width: 100, align: "center" |
|||
}, |
|||
{ |
|||
label: "更新时间", name: "UpdateTime", width: 150, align: "center", |
|||
formatter: function (value, row, op, $cell) { |
|||
return learun.formatDate(value, 'yyyy-MM-dd hh:mm:ss'); |
|||
} |
|||
}, |
|||
{ |
|||
label: "备注", name: "Remark", width: 400, align: "left" |
|||
} |
|||
] |
|||
}); |
|||
}, |
|||
beforeSearch: function () { |
|||
if (checkJustReturn) { |
|||
return false; |
|||
} |
|||
if (!curParam.SupplierId) { |
|||
learun.alert.warning('请选择供应商!'); |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
search: function (param) { |
|||
if (page.beforeSearch()) { |
|||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(curParam) }); |
|||
} |
|||
}, |
|||
refreshData: function () { |
|||
page.search(); |
|||
} |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,231 @@ |
|||
using learun.iapplication; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System; |
|||
using System.IO; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.LR_AppManager |
|||
{ |
|||
/// <summary>
|
|||
/// 版 本 EasyCode EC管理后台
|
|||
/// Copyright (c) 2019-present EC管理有限公司
|
|||
/// 创建人:tobin
|
|||
/// 日 期:2020.04.08
|
|||
/// 描 述:App首页图片管理
|
|||
/// </summary>
|
|||
[Area("LR_AppManager")] |
|||
public class DTImgController : MvcControllerBase |
|||
{ |
|||
private readonly DTImgIBLL _dTImgIBLL; |
|||
private readonly ImgIBLL _imgIBLL; |
|||
|
|||
public DTImgController(DTImgIBLL dTImgIBLL, ImgIBLL imgIBLL) |
|||
{ |
|||
_dTImgIBLL = dTImgIBLL; |
|||
_imgIBLL = imgIBLL; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
/// <summary>
|
|||
/// 主页面
|
|||
/// <summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 表单页
|
|||
/// <summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取列表数据
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetList() |
|||
{ |
|||
var data = await _dTImgIBLL.GetList(); |
|||
return Success(data); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取列表分页数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="queryJson">查询参数</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPageList(string pagination, string queryJson) |
|||
{ |
|||
Pagination paginationobj = pagination.ToObject<Pagination>(); |
|||
var data = await _dTImgIBLL.GetPageList(paginationobj, queryJson); |
|||
var jsonData = new |
|||
{ |
|||
rows = data, |
|||
paginationobj.total, |
|||
paginationobj.page, |
|||
paginationobj.records |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取表单数据
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetFormData(string keyValue) |
|||
{ |
|||
var data = await _dTImgIBLL.GetEntity(keyValue); |
|||
return Success(data); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除实体数据
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <summary>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> DeleteForm(string keyValue) |
|||
{ |
|||
var dTImgEntity = await _dTImgIBLL.GetEntity(keyValue); |
|||
if (dTImgEntity != null && !string.IsNullOrEmpty(dTImgEntity.F_FileName)) |
|||
{ |
|||
await _imgIBLL.DeleteEntity(dTImgEntity.F_FileName); |
|||
} |
|||
await _dTImgIBLL.DeleteEntity(keyValue); |
|||
return SuccessInfo("删除成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 保存实体数据(新增、修改)
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <summary>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string keyValue, DTImgEntity entity) |
|||
{ |
|||
await _dTImgIBLL.SaveEntity(keyValue, entity); |
|||
return SuccessInfo("保存成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 图片上传
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <param name="entity">印章实体</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
public async Task<IActionResult> UploadFile(string keyValue, DTImgEntity entity) |
|||
{ |
|||
var files = Request.Form.Files; |
|||
//没有文件上传,直接返回
|
|||
if (files[0].Length == 0 || string.IsNullOrEmpty(files[0].FileName)) |
|||
{ |
|||
await _dTImgIBLL.SaveEntity(keyValue, entity); |
|||
} |
|||
else |
|||
{ |
|||
string FileEextension = Path.GetExtension(files[0].FileName); |
|||
ImgEntity imgEntity = null; |
|||
if (string.IsNullOrEmpty(entity.F_FileName)) |
|||
{ |
|||
imgEntity = new ImgEntity(); |
|||
} |
|||
else |
|||
{ |
|||
imgEntity = await _imgIBLL.GetEntity(entity.F_FileName); |
|||
} |
|||
|
|||
imgEntity.F_Name = files[0].FileName; |
|||
imgEntity.F_ExName = FileEextension; |
|||
byte[] bytes = new byte[files[0].Length]; |
|||
MemoryStream ms = new MemoryStream(); |
|||
files[0].CopyTo(ms); |
|||
ms.Flush(); |
|||
ms.Position = 0; |
|||
ms.Read(bytes, 0, bytes.Length); |
|||
ms.Close(); |
|||
ms.Dispose(); |
|||
imgEntity.F_Content = Convert.ToBase64String(bytes); |
|||
await _imgIBLL.SaveEntity(entity.F_FileName, imgEntity); |
|||
|
|||
entity.F_FileName = imgEntity.F_Id; |
|||
await _dTImgIBLL.SaveEntity(keyValue, entity); |
|||
} |
|||
return SuccessInfo("保存成功。"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取图片文件
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public async Task<IActionResult> GetImg(string keyValue) |
|||
{ |
|||
var stampEntity = await _dTImgIBLL.GetEntity(keyValue); |
|||
if (stampEntity != null && !string.IsNullOrEmpty(stampEntity.F_FileName)) |
|||
{ |
|||
ImgEntity imgEntity = await _imgIBLL.GetEntity(stampEntity.F_FileName); |
|||
if (imgEntity != null && !string.IsNullOrEmpty(imgEntity.F_Content)) |
|||
{ |
|||
string imgContent = imgEntity.F_Content.Replace("data:image/" + imgEntity.F_ExName.Replace(".", "") + ";base64,", ""); |
|||
byte[] arr = Convert.FromBase64String(imgContent); |
|||
return File(arr, "application/octet-stream"); |
|||
} |
|||
else |
|||
{ |
|||
byte[] arr2 = FileHelper.ReadRoot("/img/add.jpg"); |
|||
return File(arr2, "application/octet-stream"); |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
byte[] arr3 = FileHelper.ReadRoot("/img/add.jpg"); |
|||
return File(arr3, "application/octet-stream"); |
|||
} |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 启用/停用
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <param name="state">状态1启用0禁用</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> UpDateSate(string keyValue, int state) |
|||
{ |
|||
await _dTImgIBLL.UpdateState(keyValue, state); |
|||
return SuccessInfo((state == 1 ? "启用" : "禁用") + "成功!"); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,156 @@ |
|||
using learun.iapplication; |
|||
using learun.util; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EC.Web.Areas.LR_AppManager |
|||
{ |
|||
/// <summary>
|
|||
/// 版 本 EasyCode EC管理后台
|
|||
/// Copyright (c) 2019-present EC管理有限公司
|
|||
/// 创建人:tobin
|
|||
/// 日 期:2020.04.08
|
|||
/// 描 述:移动功能管理
|
|||
/// </summary>
|
|||
[Area("LR_AppManager")] |
|||
public class FunctionManagerController : MvcControllerBase |
|||
{ |
|||
private readonly FunctionIBLL _functionIBLL; |
|||
|
|||
public FunctionManagerController(FunctionIBLL functionIBLL) |
|||
{ |
|||
_functionIBLL = functionIBLL; |
|||
} |
|||
|
|||
#region 视图功能
|
|||
|
|||
/// <summary>
|
|||
/// 管理页面
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Index() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 表单页面
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 视图功能
|
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取分页数据
|
|||
/// </summary>
|
|||
/// <param name="pagination">分页参数</param>
|
|||
/// <param name="keyword">关键字</param>
|
|||
/// <param name="type">类型</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetPageList(string pagination, string keyword, string type) |
|||
{ |
|||
Pagination paginationobj = pagination.ToObject<Pagination>(); |
|||
var data = await _functionIBLL.GetPageList(paginationobj, keyword, type); |
|||
var jsonData = new |
|||
{ |
|||
rows = data, |
|||
paginationobj.total, |
|||
paginationobj.page, |
|||
paginationobj.records, |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetForm(string keyValue) |
|||
{ |
|||
FunctionEntity entity = await _functionIBLL.GetEntity(keyValue); |
|||
FunctionSchemeEntity schemeEntity = await _functionIBLL.GetScheme(entity.F_SchemeId); |
|||
|
|||
var jsonData = new |
|||
{ |
|||
entity, |
|||
schemeEntity |
|||
}; |
|||
return Success(jsonData); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取树形移动功能列表
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetCheckTree() |
|||
{ |
|||
var data = await _functionIBLL.GetCheckTree(); |
|||
return Success(data); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 删除表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> DeleteForm(string keyValue) |
|||
{ |
|||
await _functionIBLL.Delete(keyValue); |
|||
return SuccessInfo("删除成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 保存表单数据
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <param name="strEntity">实体对象字串</param>
|
|||
/// <param name="strSchemeEntity">模板实体对象字串</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string keyValue, string strEntity, string strSchemeEntity) |
|||
{ |
|||
FunctionEntity entity = strEntity.ToObject<FunctionEntity>(); |
|||
FunctionSchemeEntity schemeEntity = strSchemeEntity.ToObject<FunctionSchemeEntity>(); |
|||
await _functionIBLL.SaveEntity(keyValue, entity, schemeEntity); |
|||
return SuccessInfo("保存成功!"); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 启用/停用表单
|
|||
/// </summary>
|
|||
/// <param name="keyValue">主键</param>
|
|||
/// <param name="state">状态1启用0禁用</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> UpDateSate(string keyValue, int state) |
|||
{ |
|||
await _functionIBLL.UpdateState(keyValue, state); |
|||
return SuccessInfo((state == 1 ? "启用" : "禁用") + "成功!"); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
@ -0,0 +1,120 @@ |
|||
@{ |
|||
ViewData["Title"] = "Form"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
<style> |
|||
.file { |
|||
width: 375px; |
|||
height: 120px; |
|||
position: relative; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.file input { |
|||
position: absolute; |
|||
font-size: 120px; |
|||
right: 0; |
|||
top: 0; |
|||
opacity: 0; |
|||
cursor: pointer !important; |
|||
} |
|||
|
|||
.file img { |
|||
width: 375px; |
|||
height: 120px; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
.text { |
|||
text-align: center; |
|||
} |
|||
</style> |
|||
<div class="lr-form-wrap" id="form"> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">说明<font face="宋体">*</font></div> |
|||
<input id="F_Des" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item"> |
|||
<div class="lr-form-item-title">排序码<font face="宋体">*</font></div> |
|||
<input id="F_SortCode" type="text" class="form-control" isvalid="yes" checkexpession="Num" /> |
|||
</div> |
|||
<div class="col-xs-12" style="padding-left:100px;"> |
|||
<div class="file"> |
|||
<input type="file" name="uploadFile" id="uploadFile"> |
|||
</div> |
|||
<div class="text"> |
|||
上传图片尺寸为375x120,大小不超过1M。 |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<script> |
|||
var acceptClick; |
|||
var keyValue = request('keyValue'); |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
var selectedRow = learun.frameTab.currentIframe().selectedRow; |
|||
|
|||
function uploadImg() { |
|||
var f = document.getElementById('uploadFile').files[0] |
|||
var src = window.URL.createObjectURL(f); |
|||
document.getElementById('uploadPreview').src = src; |
|||
}; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
}, |
|||
bind: function () { |
|||
$('#uploadFile').on('change', uploadImg); |
|||
$('.file').prepend('<img id="uploadPreview" src="' + top.$.rootUrl + '/LR_AppManager/DTImg/GetImg?keyValue=' + keyValue + '" >'); |
|||
|
|||
}, |
|||
initData: function () { |
|||
if (!!selectedRow) { |
|||
$('#form').lrSetFormData(selectedRow); |
|||
} |
|||
} |
|||
}; |
|||
// 保存数据 |
|||
acceptClick = function (callBack) { |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
var postData = $('#form').lrGetFormData(); |
|||
|
|||
if (!keyValue && !postData.uploadFile) { |
|||
learun.alert.error("请选择图片"); |
|||
return false; |
|||
} |
|||
|
|||
var f = document.getElementById('uploadFile').files[0]; |
|||
if (!!f) { |
|||
learun.loading(true, '正在保存...'); |
|||
$.ajaxFileUpload({ |
|||
data: postData, |
|||
url: top.$.rootUrl + "/LR_AppManager/DTImg/UploadFile?keyValue=" + keyValue, |
|||
secureuri: false, |
|||
fileElementId: 'uploadFile', |
|||
dataType: 'json', |
|||
success: function (data) { |
|||
if (!!callBack) { |
|||
callBack(); |
|||
} |
|||
learun.loading(false); |
|||
learun.layerClose(window.name); |
|||
} |
|||
}); |
|||
} |
|||
else { |
|||
$.lrSaveForm(top.$.rootUrl + '/LR_AppManager/DTImg/SaveForm?keyValue=' + keyValue, postData, function (res) { |
|||
// 保存成功后才回调 |
|||
if (!!callBack) { |
|||
callBack(); |
|||
} |
|||
}); |
|||
} |
|||
}; |
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,186 @@ |
|||
@{ |
|||
ViewData["Title"] = "Index"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
|
|||
<div class="lr-layout"> |
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap lr-layout-wrap-notitle"> |
|||
<div class="lr-layout-tool"> |
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" /> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> 查询</a> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-tool-right"> |
|||
<div class=" btn-group btn-group-sm"> |
|||
<a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
<div class=" btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="lr_add" class="btn btn-default"><i class="fa fa-plus lrlg"></i> 新增</a> |
|||
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o lrlg"></i> 编辑</a> |
|||
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o lrlg"></i> 删除</a> |
|||
<a id="lr_more" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> |
|||
<i class="fa fa-reorder"></i> <span class="lrlg">更多</span><span class="caret"></span> |
|||
</a> |
|||
<ul class="dropdown-menu pull-right" aria-labelledby="lr-more"> |
|||
<li id="lr_enabled"><a><i></i> <span class="lrlg">启用</span></a></li> |
|||
<li id="lr_disabled"><a><i></i> <span class="lrlg">禁用</span></a></li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-body" id="gridtable"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<script> |
|||
var selectedRow; |
|||
var refreshGirdData; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
var page = { |
|||
init: function () { |
|||
page.initGird(); |
|||
page.bind(); |
|||
}, |
|||
bind: function () { |
|||
// 查询 |
|||
$('#btn_Search').on('click', function () { |
|||
var keyword = $('#txt_Keyword').val(); |
|||
page.search({ keyword: keyword }); |
|||
}); |
|||
// 刷新 |
|||
$('#lr_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
// 新增 |
|||
$('#lr_add').on('click', function () { |
|||
selectedRow = null; |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '新增', |
|||
url: top.$.rootUrl + '/LR_AppManager/DTImg/Form', |
|||
width: 505, |
|||
height: 340, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(refreshGirdData); |
|||
} |
|||
}); |
|||
}); |
|||
// 编辑 |
|||
$('#lr_edit').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('F_Id'); |
|||
selectedRow = $('#gridtable').jfGridGet('rowdata'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'form', |
|||
title: '编辑', |
|||
url: top.$.rootUrl + '/LR_AppManager/DTImg/Form?keyValue=' + keyValue, |
|||
width: 505, |
|||
height: 340, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(refreshGirdData); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
// 删除 |
|||
$('#lr_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('F_Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该项!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/LR_AppManager/DTImg/DeleteForm', { keyValue: keyValue }, function () { |
|||
refreshGirdData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
|
|||
// 启用 |
|||
$('#lr_enabled').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('F_Id'); |
|||
var enabledMark = $('#gridtable').jfGridValue('F_EnabledMark'); |
|||
if (learun.checkrow(keyValue)) { |
|||
if (enabledMark != 1) { |
|||
learun.layerConfirm('是否确认启用该项!', function (res) { |
|||
if (res) { |
|||
learun.postForm(top.$.rootUrl + '/LR_AppManager/DTImg/UpDateSate', { keyValue: keyValue, state: 1 }, function () { |
|||
refreshGirdData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
else { |
|||
learun.alert.warning('该项已启用!'); |
|||
} |
|||
} |
|||
}); |
|||
// 禁用 |
|||
$('#lr_disabled').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('F_Id'); |
|||
var enabledMark = $('#gridtable').jfGridValue('F_EnabledMark'); |
|||
|
|||
if (learun.checkrow(keyValue)) { |
|||
if (enabledMark == 1) { |
|||
learun.layerConfirm('是否确认禁用该项!', function (res) { |
|||
if (res) { |
|||
learun.postForm(top.$.rootUrl + '/LR_AppManager/DTImg/UpDateSate', { keyValue: keyValue, state: 0 }, function () { |
|||
refreshGirdData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
else { |
|||
learun.alert.warning('该项已禁用!'); |
|||
} |
|||
} |
|||
}); |
|||
}, |
|||
initGird: function () { |
|||
$('#gridtable').lrAuthorizeJfGrid({ |
|||
url: top.$.rootUrl + '/LR_AppManager/DTImg/GetPageList', |
|||
headData: [ |
|||
{ label: '说明', name: 'F_Des', width: 200, align: "left" }, |
|||
{ |
|||
label: '图片', name: 'F_FileName', width: 197.5, align: "left", |
|||
formatter: function(value, row, op, $cell) { |
|||
return '<img src="' + top.$.rootUrl + '/LR_AppManager/DTImg/GetImg?keyValue=' + row.F_Id + '" style="position: absolute;height:60px;width:187.5px;top:5px;left:5px;" >'; |
|||
} |
|||
}, |
|||
|
|||
{ |
|||
label: '状态', name: 'F_EnabledMark', width: 80, align: "center", |
|||
formatter: function (cellvalue, row) { |
|||
if (cellvalue == 1) { |
|||
return '<span class=\"label label-success\" style=\"cursor: pointer;\">启用</span>'; |
|||
} else if (cellvalue == 0) { |
|||
return '<span class=\"label label-default\" style=\"cursor: pointer;\">禁用</span>'; |
|||
} |
|||
} |
|||
}, |
|||
{ label: '排序码', name: 'F_SortCode', width: 100, align: "left" } |
|||
], |
|||
mainId: 'F_Id', |
|||
isPage: true, |
|||
rowHeight: 70, |
|||
sidx:'F_EnabledMark Desc,F_SortCode ASC' |
|||
}); |
|||
page.search(); |
|||
}, |
|||
search: function (param) { |
|||
param = param || {}; |
|||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); |
|||
} |
|||
}; |
|||
refreshGirdData = function () { |
|||
$('#gridtable').jfGridSet('reload'); |
|||
}; |
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,280 @@ |
|||
@{ |
|||
ViewData["Title"] = "Form"; |
|||
Layout = "~/Views/Shared/_Form.cshtml"; |
|||
} |
|||
<style> |
|||
.lr-tableshow { |
|||
position:relative; |
|||
width:100%; |
|||
height:90px; |
|||
border:1px solid #eee; |
|||
padding:10px; |
|||
} |
|||
</style> |
|||
<div class="lr-form-wrap" id="form"> |
|||
<input id="F_SchemeId" type="hidden" /> |
|||
<div class="col-xs-6 lr-form-item"> |
|||
<div class="lr-form-item-title">功能名称<font face="宋体">*</font></div> |
|||
<input id="F_Name" type="text" class="form-control" placeholder="请输入名称" isvalid="yes" checkexpession="NotNull" /> |
|||
</div> |
|||
<div class="col-xs-6 lr-form-item"> |
|||
<div class="lr-form-item-title">功能图标<font face="宋体">*</font></div> |
|||
<input id="F_Icon" type="text" class="form-control" placeholder="请选择图标" isvalid="yes" checkexpession="NotNull" /> |
|||
<span id="selectIcon" class="lr-input-button" title="选取图标">...</span> |
|||
</div> |
|||
<div class="col-xs-6 lr-form-item"> |
|||
<div class="lr-form-item-title">功能分类<font face="宋体">*</font></div> |
|||
<div id="F_Type" isvalid="yes" checkexpession="NotNull"></div> |
|||
</div> |
|||
<div class="col-xs-6 lr-form-item"> |
|||
<div class="lr-form-item-title">排序<font face="宋体">*</font></div> |
|||
<input id="F_SortCode" type="text" class="form-control" placeholder="请输入排序号" isvalid="yes" checkexpession="Num" /> |
|||
</div> |
|||
<div class="col-xs-6 lr-form-item"> |
|||
<div class="lr-form-item-title">类型</div> |
|||
<div class="radio"> |
|||
<label> |
|||
<input name="F_IsSystem" type="radio" value="2" checked="checked"> |
|||
自定义表单 |
|||
</label> |
|||
<label> |
|||
<input name="F_IsSystem" type="radio" value="1"> |
|||
代码开发 |
|||
</label> |
|||
</div> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item system " style="display:none;"> |
|||
<div class="lr-form-item-title">功能地址</div> |
|||
<input id="F_Url" type="text" class="form-control" placeholder="请输入功能地址" /> |
|||
</div> |
|||
|
|||
<div class="col-xs-12 lr-form-item lr-form-btnitem nosystem"> |
|||
<div class="lr-form-item-title">表单选择</div> |
|||
<div id="F_FormId"></div> |
|||
<a id="lr_preview" class="btn btn-default lr-form-item-btn">预览表单</a> |
|||
</div> |
|||
<div class="col-xs-12 lr-form-item nosystem"> |
|||
<div class="lr-form-item-title">列表展示</div> |
|||
<div class="lr-tableshow"> |
|||
<div class="col-xs-12" style="padding-bottom:10px;"> |
|||
<div id="listTitle"></div> |
|||
</div> |
|||
<div class="col-xs-4" style="padding-right:6px;"> |
|||
<div id="listContent1"></div> |
|||
</div> |
|||
<div class="col-xs-4" style="padding:0 3px;"> |
|||
<div id="listContent2"></div> |
|||
</div> |
|||
<div class="col-xs-4" style="padding-left:6px;"> |
|||
<div id="listContent3"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<script> |
|||
var keyValue = request('keyValue'); |
|||
var type = request('type'); |
|||
|
|||
var acceptClick; |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
|
|||
var lrcomponts = []; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.bind(); |
|||
page.initData(); |
|||
}, |
|||
/*绑定事件和初始化控件*/ |
|||
bind: function () { |
|||
// 列表显示 |
|||
$('#listTitle').lrselect({ |
|||
type: 'multiple' |
|||
}); |
|||
$('#listContent1').lrselect({ maxHeight: 160 }); |
|||
$('#listContent2').lrselect({ maxHeight: 160 }); |
|||
$('#listContent3').lrselect({ maxHeight: 160 }); |
|||
|
|||
// 选择图标 |
|||
$('#selectIcon').on('click', function () { |
|||
learun.layerForm({ |
|||
id: 'iconForm', |
|||
title: '选择图标', |
|||
url: top.$.rootUrl + '/Utility/AppIcon', |
|||
height: 700, |
|||
width: 1000, |
|||
btn: null, |
|||
maxmin: true, |
|||
end: function () { |
|||
if (top._learunSelectIcon != '') { |
|||
$('#F_Icon').val(top._learunSelectIcon); |
|||
} |
|||
} |
|||
}); |
|||
}); |
|||
// 分类 |
|||
$('#F_Type').lrDataItemSelect({ code: 'function' }); |
|||
$('#F_Type').lrselectSet(type); |
|||
// 选在表单 |
|||
$('#F_FormId').lrselect({ |
|||
text: 'F_Name', |
|||
value: 'F_Id', |
|||
url: top.$.rootUrl + '/LR_FormModule/Custmerform/GetSchemeInfoList', |
|||
maxHeight: 180, |
|||
allowSearch: true, |
|||
select: function (item) { |
|||
if (item) { |
|||
lrcomponts = []; |
|||
$.lrSetForm(top.$.rootUrl + '/LR_FormModule/Custmerform/GetFormData?keyValue=' + item.F_Id, function (data) { |
|||
var scheme = JSON.parse(data.schemeEntity.F_Scheme); |
|||
for (var i = 0, l = scheme.data.length; i < l; i++) { |
|||
var componts = scheme.data[i].componts; |
|||
for (var j = 0, jl = componts.length; j < jl; j++) { |
|||
var compont = componts[j]; |
|||
if (compont.type == 'gridtable') { |
|||
} |
|||
else { |
|||
var point = { text: compont.title, id: compont.id }; |
|||
lrcomponts.push(point); |
|||
} |
|||
} |
|||
} |
|||
|
|||
$('#listTitle').lrselectRefresh({ |
|||
data: lrcomponts |
|||
}); |
|||
$('#listContent1').lrselectRefresh({ |
|||
data: lrcomponts |
|||
}); |
|||
$('#listContent2').lrselectRefresh({ |
|||
data: lrcomponts |
|||
}); |
|||
$('#listContent3').lrselectRefresh({ |
|||
data: lrcomponts |
|||
}); |
|||
}); |
|||
} else { |
|||
lrcomponts = []; |
|||
$('#listTitle').lrselectRefresh({ |
|||
data: lrcomponts |
|||
}); |
|||
$('#listContent1').lrselectRefresh({ |
|||
data: lrcomponts |
|||
}); |
|||
$('#listContent2').lrselectRefresh({ |
|||
data: lrcomponts |
|||
}); |
|||
$('#listContent3').lrselectRefresh({ |
|||
data: lrcomponts |
|||
}); |
|||
} |
|||
} |
|||
}); |
|||
$('#lr_preview').on('click', function () { |
|||
var formId = $('#F_FormId').lrselectGet(); |
|||
if (!!formId) { |
|||
learun.layerForm({ |
|||
id: 'custmerForm_PreviewForm', |
|||
title: '预览当前表单', |
|||
url: top.$.rootUrl + '/LR_FormModule/Custmerform/PreviewForm?schemeInfoId=' + formId, |
|||
width: 800, |
|||
height: 600, |
|||
maxmin: true, |
|||
btn: null |
|||
}); |
|||
} |
|||
else { |
|||
learun.alert.warning('请选择表单!'); |
|||
} |
|||
}); |
|||
|
|||
// 功能类型 |
|||
$('[name="F_IsSystem"]').on('click', function () { |
|||
var value = $(this).val(); |
|||
if (value == 1) { |
|||
$('.system').show(); |
|||
$('.nosystem').hide(); |
|||
} else { |
|||
$('.system').hide(); |
|||
$('.nosystem').show(); |
|||
} |
|||
}); |
|||
|
|||
}, |
|||
/*初始化数据*/ |
|||
initData: function () { |
|||
if (!!keyValue) { |
|||
$.lrSetForm(top.$.rootUrl + '/LR_AppManager/FunctionManager/GetForm?keyValue=' + keyValue, function (data) {// |
|||
$('#form').lrSetFormData(data.entity); |
|||
if (data.entity.F_IsSystem != 1 && data.schemeEntity) { |
|||
var scheme = JSON.parse(data.schemeEntity.F_Scheme); |
|||
$('#listTitle').lrselectSet(scheme.title); |
|||
$('#listContent1').lrselectSet(scheme.content[0]); |
|||
$('#listContent2').lrselectSet(scheme.content[1]); |
|||
$('#listContent3').lrselectSet(scheme.content[2]); |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
}; |
|||
|
|||
// 保存数据 |
|||
acceptClick = function (callBack) { |
|||
if (!$('#form').lrValidform()) { |
|||
return false; |
|||
} |
|||
var formData = $('#form').lrGetFormData(keyValue); |
|||
formData.F_IsSystem = $('[name="F_IsSystem"]:checked').val(); |
|||
var entity = { |
|||
F_Name: formData.F_Name, |
|||
F_Icon: formData.F_Icon, |
|||
F_Type: formData.F_Type, |
|||
F_SortCode: formData.F_SortCode, |
|||
F_FormId: formData.F_FormId, |
|||
F_SchemeId: formData.F_SchemeId, |
|||
F_Url: formData.F_Url, |
|||
F_IsSystem: formData.F_IsSystem, |
|||
}; |
|||
if (formData.F_IsSystem == 1) { |
|||
if ($.trim(formData.F_Url || '') == '') { |
|||
learun.alert.error('请填写功能地址!'); |
|||
return false; |
|||
} |
|||
} |
|||
else { |
|||
if ($.trim(formData.listTitle || '') == '') { |
|||
learun.alert.error('请设置列表展示!'); |
|||
return false; |
|||
} |
|||
} |
|||
|
|||
var scheme = { |
|||
title: formData.listTitle, |
|||
content:['','',''] |
|||
}; |
|||
scheme.content[0] = formData.listContent1; |
|||
scheme.content[1] = formData.listContent2; |
|||
scheme.content[2] = formData.listContent3; |
|||
|
|||
var schemeEntity = { |
|||
F_Scheme: JSON.stringify(scheme) |
|||
} |
|||
|
|||
// 提交数据 |
|||
var postData = { |
|||
strEntity: JSON.stringify(entity), |
|||
strSchemeEntity: JSON.stringify(schemeEntity), |
|||
}; |
|||
|
|||
$.lrSaveForm(top.$.rootUrl + '/LR_AppManager/FunctionManager/SaveForm?keyValue=' + keyValue, postData, function (res) { |
|||
// 保存成功后才回调 |
|||
if (!!callBack) { |
|||
callBack(); |
|||
} |
|||
}); |
|||
}; |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,251 @@ |
|||
@{ |
|||
ViewBag.Title = "移动功能管理"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<div class="lr-layout lr-layout-left-center" id="lr_layout"> |
|||
<div class="lr-layout-left"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title lrlg">功能分类</div> |
|||
<div class="lr-layout-body" id="lr_left_tree"></div> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-center"> |
|||
<div class="lr-layout-wrap"> |
|||
<div class="lr-layout-title"> |
|||
<span class="lrlg">移动功能数据</span> - <span id="titleinfo" class="lrlg">未选择分类</span> |
|||
</div> |
|||
<div class="lr-layout-tool"> |
|||
<div class="lr-layout-tool-left"> |
|||
<div class="lr-layout-tool-item"> |
|||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入功能名称" /> |
|||
</div> |
|||
<div class="lr-layout-tool-item"> |
|||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> <span class="lrlg">查询</span></a> |
|||
</div> |
|||
</div> |
|||
<div class="lr-layout-tool-right"> |
|||
<div class=" btn-group btn-group-sm"> |
|||
<a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> |
|||
</div> |
|||
<div class=" btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="lr_add" class="btn btn-default"><i class="fa fa-plus"></i> <span class="lrlg">新增</span></a> |
|||
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></a> |
|||
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></a> |
|||
<a id="lr_more" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> |
|||
<i class="fa fa-reorder"></i> <span class="lrlg">更多</span><span class="caret"></span> |
|||
</a> |
|||
<ul class="dropdown-menu pull-right"> |
|||
<li id="lr_enable"><a><i></i> <span class="lrlg">启用</span></a></li> |
|||
<li id="lr_disabled"><a><i></i> <span class="lrlg">停用</span></a></li> |
|||
</ul> |
|||
</div> |
|||
<div class=" btn-group btn-group-sm" learun-authorize="yes"> |
|||
<a id="lr_category" class="btn btn-default"><i class="fa fa-tags"></i> <span class="lrlg">分类管理</span></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="lr-layout-body" id="gridtable"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<script> |
|||
var refreshGirdData; // 更新数据 |
|||
var bootstrap = function ($, learun) { |
|||
"use strict"; |
|||
var type = ''; |
|||
|
|||
var page = { |
|||
init: function () { |
|||
page.initGrid(); |
|||
page.bind(); |
|||
}, |
|||
bind: function () { |
|||
// 左侧数据加载 |
|||
$('#lr_left_tree').lrtree({ |
|||
url: top.$.rootUrl + '/LR_SystemModule/DataItem/GetDetailTree', |
|||
param: { itemCode: 'function' }, |
|||
nodeClick: function (item) { |
|||
type = item.value; |
|||
$('#titleinfo').text(item.text); |
|||
page.search(); |
|||
} |
|||
}); |
|||
// 查询 |
|||
$('#btn_Search').on('click', function () { |
|||
var keyword = $('#txt_Keyword').val(); |
|||
page.search({ keyword: keyword }); |
|||
}); |
|||
// 刷新 |
|||
$('#lr_refresh').on('click', function () { |
|||
location.reload(); |
|||
}); |
|||
// 新增 |
|||
$('#lr_add').on('click', function () { |
|||
learun.layerForm({ |
|||
id: 'Form', |
|||
title: '新增移动功能', |
|||
url: top.$.rootUrl + '/LR_AppManager/FunctionManager/Form?type=' + type, |
|||
width: 600, |
|||
height: 450, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(refreshGirdData); |
|||
} |
|||
}); |
|||
}); |
|||
// 编辑 |
|||
$('#lr_edit').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('F_Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerForm({ |
|||
id: 'Form', |
|||
title: '编辑移动功能', |
|||
url: top.$.rootUrl + '/LR_AppManager/FunctionManager/Form?keyValue=' + keyValue, |
|||
width: 600, |
|||
height: 450, |
|||
callBack: function (id) { |
|||
return top[id].acceptClick(refreshGirdData); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
// 删除 |
|||
$('#lr_delete').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('F_Id'); |
|||
if (learun.checkrow(keyValue)) { |
|||
learun.layerConfirm('是否确认删除该功能!', function (res) { |
|||
if (res) { |
|||
learun.deleteForm(top.$.rootUrl + '/LR_AppManager/FunctionManager/DeleteForm', { keyValue: keyValue }, function () { |
|||
refreshGirdData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
|
|||
// 启用 |
|||
$('#lr_enable').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('F_Id'); |
|||
var enabledMark = $('#gridtable').jfGridValue('F_EnabledMark'); |
|||
if (learun.checkrow(keyValue)) { |
|||
if (enabledMark != 1) { |
|||
learun.layerConfirm('是否启用该功能!', function (res) { |
|||
if (res) { |
|||
learun.postForm(top.$.rootUrl + '/LR_AppManager/FunctionManager/UpDateSate', { keyValue: keyValue, state: 1 }, function () { |
|||
refreshGirdData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
else { |
|||
learun.alert.warning('该功能已启用!'); |
|||
} |
|||
} |
|||
}); |
|||
// 禁用 |
|||
$('#lr_disabled').on('click', function () { |
|||
var keyValue = $('#gridtable').jfGridValue('F_Id'); |
|||
var enabledMark = $('#gridtable').jfGridValue('F_EnabledMark'); |
|||
|
|||
if (learun.checkrow(keyValue)) { |
|||
if (enabledMark == 1) { |
|||
learun.layerConfirm('是否禁用该功能!', function (res) { |
|||
if (res) { |
|||
learun.postForm(top.$.rootUrl + '/LR_AppManager/FunctionManager/UpDateSate', { keyValue: keyValue, state: 0 }, function () { |
|||
refreshGirdData(); |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
else { |
|||
learun.alert.warning('该功能已禁用!'); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
/*分类管理*/ |
|||
$('#lr_category').on('click', function () { |
|||
learun.layerForm({ |
|||
id: 'ClassifyIndex', |
|||
title: '分类管理', |
|||
url: top.$.rootUrl + '/LR_SystemModule/DataItem/DetailIndex?itemCode=function', |
|||
width: 800, |
|||
height: 500, |
|||
maxmin: true, |
|||
btn: null, |
|||
end: function () { |
|||
learun.clientdata.update('dataItem'); |
|||
location.reload(); |
|||
} |
|||
}); |
|||
}); |
|||
}, |
|||
initGrid: function () { |
|||
$('#gridtable').lrAuthorizeJfGrid({ |
|||
url: top.$.rootUrl + '/LR_AppManager/FunctionManager/GetPageList', |
|||
headData: [ |
|||
{ label: "功能名称", name: "F_Name", width: 150, align: "left" }, |
|||
{ |
|||
label: "分类", name: "F_Type", width: 120, align: "left", |
|||
formatterAsync: function (callback, value, row) { |
|||
learun.clientdata.getAsync('dataItem', { |
|||
key: value, |
|||
code: 'function', |
|||
callback: function (_data) { |
|||
callback(_data.text); |
|||
} |
|||
}); |
|||
} |
|||
}, |
|||
{ |
|||
label: "类型", name: "F_IsSystem", width: 100, align: "center", |
|||
formatter: function (cellvalue, row) { |
|||
if (cellvalue == 1) { |
|||
return '<span class=\"label label-info\" style=\"cursor: pointer;\">代码开发</span>'; |
|||
} else { |
|||
return '<span class=\"label label-warning\" style=\"cursor: pointer;\">自定义表单</span>'; |
|||
} |
|||
} |
|||
}, |
|||
{ |
|||
label: "状态", name: "F_EnabledMark", width: 60, align: "center", |
|||
formatter: function (cellvalue, row) { |
|||
if (cellvalue == 1) { |
|||
return '<span class=\"label label-success\" style=\"cursor: pointer;\">正常</span>'; |
|||
} else if (cellvalue == 0) { |
|||
return '<span class=\"label label-default\" style=\"cursor: pointer;\">禁用</span>'; |
|||
} |
|||
} |
|||
}, |
|||
{ label: "编辑人", name: "F_CreateUserName", width: 120, align: "left" }, |
|||
{ |
|||
label: "编辑时间", name: "F_CreateDate", width: 150, align: "left", |
|||
formatter: function (cellvalue) { |
|||
return learun.formatDate(cellvalue, 'yyyy-MM-dd'); |
|||
}, |
|||
sort: true |
|||
} |
|||
], |
|||
mainId: 'F_Id', |
|||
sidx:'F_SortCode', |
|||
reloadSelected: true, |
|||
isPage: true |
|||
}); |
|||
page.search(); |
|||
}, |
|||
search: function (param) { |
|||
param = param || {}; |
|||
param.type = type; |
|||
$('#gridtable').jfGridSet('reload', param); |
|||
} |
|||
}; |
|||
|
|||
// 保存数据后回调刷新 |
|||
refreshGirdData = function () { |
|||
$('#gridtable').jfGridSet('reload'); |
|||
} |
|||
|
|||
page.init(); |
|||
} |
|||
</script> |
|||
@ -0,0 +1,83 @@ |
|||
using learun.iapplication; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using System.Threading.Tasks; |
|||
|
|||
// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
|
|||
|
|||
namespace EC.Web.Areas.LR_AuthorizeModule.Controllers |
|||
{ |
|||
/// <summary>
|
|||
/// 版 本 EasyCode EC管理后台
|
|||
/// Copyright (c) 2019-present EC管理有限公司
|
|||
/// 创建人:tobin
|
|||
/// 日 期:2019.10.25
|
|||
/// 描 述:功能权限设置
|
|||
/// </summary>
|
|||
[Area("LR_AuthorizeModule")] |
|||
public class AuthorizeController : MvcControllerBase |
|||
{ |
|||
private AuthorizeIBLL _authorizeIBLL; |
|||
|
|||
public AuthorizeController(AuthorizeIBLL authorizeIBLL) |
|||
{ |
|||
_authorizeIBLL = authorizeIBLL; |
|||
} |
|||
|
|||
#region 获取视图
|
|||
|
|||
/// <summary>
|
|||
/// 功能权限设置
|
|||
/// </summary>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
public IActionResult Form() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
#endregion 获取视图
|
|||
|
|||
#region 获取数据
|
|||
|
|||
/// <summary>
|
|||
/// 获取设置信息
|
|||
/// </summary>
|
|||
/// <param name="objectId">设置对象:角色或人员</param>
|
|||
/// <param name="type">类型 1 模块 2 按钮 3 列 4 表单 5 移动端功能</param>
|
|||
/// <returns></returns>
|
|||
[HttpGet] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> GetData(string objectId, int type) |
|||
{ |
|||
var data = await _authorizeIBLL.GetItemIdListByobjectIds(objectId, type); |
|||
return Success(data); |
|||
} |
|||
|
|||
#endregion 获取数据
|
|||
|
|||
#region 提交数据
|
|||
|
|||
/// <summary>
|
|||
/// 保存表单数据
|
|||
/// </summary>
|
|||
/// <param name="objectId">对象Id</param>
|
|||
/// <param name="objectType">权限分类-1角色2用户</param>
|
|||
/// <param name="strFormId">对用功能id</param>
|
|||
/// <param name="type">类型 1 模块 2 按钮 3 列 4 表单 5 移动端功能</param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
[AjaxOnly] |
|||
public async Task<IActionResult> SaveForm(string objectId, int objectType, string strFormId, int type) |
|||
{ |
|||
if (string.IsNullOrEmpty(strFormId)) |
|||
{ |
|||
strFormId = ""; |
|||
} |
|||
string[] formIds = strFormId.Split(','); |
|||
await _authorizeIBLL.SaveAppAuthorize(objectType, objectId, formIds, type); |
|||
return Success("保存成功!"); |
|||
} |
|||
|
|||
#endregion 提交数据
|
|||
} |
|||
} |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue