Browse Source

first commit

master
fajiao 4 years ago
parent
commit
b689d5a0b5
  1. 112
      EC.App/EC.App/AutoWeight/Auth/AuthBll.cs
  2. 101
      EC.App/EC.App/AutoWeight/Auth/AuthEntity.cs
  3. 39
      EC.App/EC.App/AutoWeight/Auth/AuthIBll.cs
  4. 119
      EC.App/EC.App/AutoWeight/Auth/AuthService.cs
  5. 136
      EC.App/EC.App/AutoWeight/Driver/DriverBll.cs
  6. 128
      EC.App/EC.App/AutoWeight/Driver/DriverEntity.cs
  7. 70
      EC.App/EC.App/AutoWeight/Driver/DriverIBll.cs
  8. 171
      EC.App/EC.App/AutoWeight/Driver/DriverService.cs
  9. 99
      EC.App/EC.App/AutoWeight/Ini/IniBll.cs
  10. 64
      EC.App/EC.App/AutoWeight/Ini/IniEntity.cs
  11. 61
      EC.App/EC.App/AutoWeight/Ini/IniIBll.cs
  12. 199
      EC.App/EC.App/AutoWeight/Ini/IniService.cs
  13. 160
      EC.App/EC.App/AutoWeight/MonthPlan/MonthPlanBll.cs
  14. 109
      EC.App/EC.App/AutoWeight/MonthPlan/MonthPlanEntity.cs
  15. 76
      EC.App/EC.App/AutoWeight/MonthPlan/MonthPlanIBll.cs
  16. 63
      EC.App/EC.App/AutoWeight/MonthPlan/MonthPlanInfoDto.cs
  17. 197
      EC.App/EC.App/AutoWeight/MonthPlan/MonthPlanService.cs
  18. 90
      EC.App/EC.App/AutoWeight/Photo/PhotoBll.cs
  19. 62
      EC.App/EC.App/AutoWeight/Photo/PhotoEntity.cs
  20. 68
      EC.App/EC.App/AutoWeight/Photo/PhotoIBll.cs
  21. 161
      EC.App/EC.App/AutoWeight/Photo/PhotoService.cs
  22. 45
      EC.App/EC.App/AutoWeight/Report/DayStatisticsDto.cs
  23. 43
      EC.App/EC.App/AutoWeight/Report/MonthStatisticsDto.cs
  24. 75
      EC.App/EC.App/AutoWeight/Report/ReportBll.cs
  25. 73
      EC.App/EC.App/AutoWeight/Report/ReportIBll.cs
  26. 480
      EC.App/EC.App/AutoWeight/Report/ReportService.cs
  27. 119
      EC.App/EC.App/AutoWeight/Site/SiteBll.cs
  28. 75
      EC.App/EC.App/AutoWeight/Site/SiteEntity.cs
  29. 46
      EC.App/EC.App/AutoWeight/Site/SiteIBll.cs
  30. 114
      EC.App/EC.App/AutoWeight/Site/SiteService.cs
  31. 132
      EC.App/EC.App/AutoWeight/Supplier/SupplierBll.cs
  32. 119
      EC.App/EC.App/AutoWeight/Supplier/SupplierEntity.cs
  33. 74
      EC.App/EC.App/AutoWeight/Supplier/SupplierIBll.cs
  34. 158
      EC.App/EC.App/AutoWeight/Supplier/SupplierService.cs
  35. 135
      EC.App/EC.App/AutoWeight/Trailer/TrailerBll.cs
  36. 90
      EC.App/EC.App/AutoWeight/Trailer/TrailerEntity.cs
  37. 74
      EC.App/EC.App/AutoWeight/Trailer/TrailerIBll.cs
  38. 165
      EC.App/EC.App/AutoWeight/Trailer/TrailerService.cs
  39. 163
      EC.App/EC.App/AutoWeight/TransportBill/TransportBillBll.cs
  40. 215
      EC.App/EC.App/AutoWeight/TransportBill/TransportBillEntity.cs
  41. 62
      EC.App/EC.App/AutoWeight/TransportBill/TransportBillIBll.cs
  42. 183
      EC.App/EC.App/AutoWeight/TransportBill/TransportBillService.cs
  43. 34
      EC.App/EC.App/AutoWeight/TransportBill/TransportBillVolumeDto.cs
  44. 135
      EC.App/EC.App/AutoWeight/Truck/TruckBll.cs
  45. 90
      EC.App/EC.App/AutoWeight/Truck/TruckEntity.cs
  46. 74
      EC.App/EC.App/AutoWeight/Truck/TruckIBll.cs
  47. 165
      EC.App/EC.App/AutoWeight/Truck/TruckService.cs
  48. 18
      EC.App/EC.App/EC.App.csproj
  49. 18
      EC.App/EC.App/Model/State/BillState.cs
  50. 12
      EC.Web/.config/dotnet-tools.json
  51. 116
      EC.Web/Areas/AutoWeight/Controllers/AuthController.cs
  52. 146
      EC.Web/Areas/AutoWeight/Controllers/DriverController.cs
  53. 16
      EC.Web/Areas/AutoWeight/Controllers/HomeController.cs
  54. 136
      EC.Web/Areas/AutoWeight/Controllers/IniController.cs
  55. 162
      EC.Web/Areas/AutoWeight/Controllers/MonthPlanController.cs
  56. 161
      EC.Web/Areas/AutoWeight/Controllers/PhotoController.cs
  57. 354
      EC.Web/Areas/AutoWeight/Controllers/ReportController.cs
  58. 133
      EC.Web/Areas/AutoWeight/Controllers/SiteController.cs
  59. 148
      EC.Web/Areas/AutoWeight/Controllers/SupplierController.cs
  60. 13
      EC.Web/Areas/AutoWeight/Controllers/TestController.cs
  61. 146
      EC.Web/Areas/AutoWeight/Controllers/TrailerController.cs
  62. 139
      EC.Web/Areas/AutoWeight/Controllers/TransportBillController.cs
  63. 146
      EC.Web/Areas/AutoWeight/Controllers/TruckController.cs
  64. 95
      EC.Web/Areas/AutoWeight/Views/Auth/Form.cshtml
  65. 255
      EC.Web/Areas/AutoWeight/Views/Auth/Index.cshtml
  66. 244
      EC.Web/Areas/AutoWeight/Views/Driver/Form.cshtml
  67. 279
      EC.Web/Areas/AutoWeight/Views/Driver/Index.cshtml
  68. 56
      EC.Web/Areas/AutoWeight/Views/Ini/Form.cshtml
  69. 203
      EC.Web/Areas/AutoWeight/Views/Ini/Index.cshtml
  70. 85
      EC.Web/Areas/AutoWeight/Views/MonthPlan/Form.cshtml
  71. 350
      EC.Web/Areas/AutoWeight/Views/MonthPlan/Index.cshtml
  72. 110
      EC.Web/Areas/AutoWeight/Views/Photo/Form.cshtml
  73. 162
      EC.Web/Areas/AutoWeight/Views/Photo/Index.cshtml
  74. 261
      EC.Web/Areas/AutoWeight/Views/Report/BillRateScatterChartByDay.cshtml
  75. 258
      EC.Web/Areas/AutoWeight/Views/Report/BillRateScatterChartByMonth.cshtml
  76. 252
      EC.Web/Areas/AutoWeight/Views/Report/BillVolumeLineChartByMonth.cshtml
  77. 247
      EC.Web/Areas/AutoWeight/Views/Report/BillVolumeScatterChartByDay.cshtml
  78. 268
      EC.Web/Areas/AutoWeight/Views/Report/MonthPlanSheet.cshtml
  79. 394
      EC.Web/Areas/AutoWeight/Views/Report/StatisticsSheetByDay.cshtml
  80. 383
      EC.Web/Areas/AutoWeight/Views/Report/StatisticsSheetByMonth.cshtml
  81. 383
      EC.Web/Areas/AutoWeight/Views/Report/StatisticsSheetByYear.cshtml
  82. 392
      EC.Web/Areas/AutoWeight/Views/Report/TruckGradeSheetByMonth.cshtml
  83. 70
      EC.Web/Areas/AutoWeight/Views/Site/Form.cshtml
  84. 252
      EC.Web/Areas/AutoWeight/Views/Site/Index.cshtml
  85. 89
      EC.Web/Areas/AutoWeight/Views/Supplier/Form.cshtml
  86. 221
      EC.Web/Areas/AutoWeight/Views/Supplier/Index.cshtml
  87. 124
      EC.Web/Areas/AutoWeight/Views/Test/Index.cshtml
  88. 69
      EC.Web/Areas/AutoWeight/Views/Trailer/Form.cshtml
  89. 246
      EC.Web/Areas/AutoWeight/Views/Trailer/Index.cshtml
  90. 253
      EC.Web/Areas/AutoWeight/Views/TransportBill/Form.cshtml
  91. 609
      EC.Web/Areas/AutoWeight/Views/TransportBill/Index.cshtml
  92. 69
      EC.Web/Areas/AutoWeight/Views/Truck/Form.cshtml
  93. 246
      EC.Web/Areas/AutoWeight/Views/Truck/Index.cshtml
  94. 231
      EC.Web/Areas/LR_AppManager/Controllers/DTImgController.cs
  95. 156
      EC.Web/Areas/LR_AppManager/Controllers/FunctionManagerController.cs
  96. 120
      EC.Web/Areas/LR_AppManager/Views/DTImg/Form.cshtml
  97. 186
      EC.Web/Areas/LR_AppManager/Views/DTImg/Index.cshtml
  98. 280
      EC.Web/Areas/LR_AppManager/Views/FunctionManager/Form.cshtml
  99. 251
      EC.Web/Areas/LR_AppManager/Views/FunctionManager/Index.cshtml
  100. 83
      EC.Web/Areas/LR_AuthorizeModule/Controllers/AuthorizeController.cs

112
EC.App/EC.App/AutoWeight/Auth/AuthBll.cs

@ -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 提交数据
}
}

101
EC.App/EC.App/AutoWeight/Auth/AuthEntity.cs

@ -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
}
}

39
EC.App/EC.App/AutoWeight/Auth/AuthIBll.cs

@ -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 提交数据
}
}

119
EC.App/EC.App/AutoWeight/Auth/AuthService.cs

@ -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 提交数据
}
}

136
EC.App/EC.App/AutoWeight/Driver/DriverBll.cs

@ -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 提交数据
}
}

128
EC.App/EC.App/AutoWeight/Driver/DriverEntity.cs

@ -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
}
}

70
EC.App/EC.App/AutoWeight/Driver/DriverIBll.cs

@ -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 提交数据
}
}

171
EC.App/EC.App/AutoWeight/Driver/DriverService.cs

@ -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 提交数据
}
}

99
EC.App/EC.App/AutoWeight/Ini/IniBll.cs

@ -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 提交数据
}
}

64
EC.App/EC.App/AutoWeight/Ini/IniEntity.cs

@ -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
}
}

61
EC.App/EC.App/AutoWeight/Ini/IniIBll.cs

@ -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 提交数据
}
}

199
EC.App/EC.App/AutoWeight/Ini/IniService.cs

@ -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 提交数据
}
}

160
EC.App/EC.App/AutoWeight/MonthPlan/MonthPlanBll.cs

@ -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 提交数据
}
}

109
EC.App/EC.App/AutoWeight/MonthPlan/MonthPlanEntity.cs

@ -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
}
}

76
EC.App/EC.App/AutoWeight/MonthPlan/MonthPlanIBll.cs

@ -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 提交数据
}
}

63
EC.App/EC.App/AutoWeight/MonthPlan/MonthPlanInfoDto.cs

@ -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
}
}

197
EC.App/EC.App/AutoWeight/MonthPlan/MonthPlanService.cs

@ -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 提交数据
}
}

90
EC.App/EC.App/AutoWeight/Photo/PhotoBll.cs

@ -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 提交数据
}
}

62
EC.App/EC.App/AutoWeight/Photo/PhotoEntity.cs

@ -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
}
}

68
EC.App/EC.App/AutoWeight/Photo/PhotoIBll.cs

@ -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 提交数据
}
}

161
EC.App/EC.App/AutoWeight/Photo/PhotoService.cs

@ -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 提交数据
}
}

45
EC.App/EC.App/AutoWeight/Report/DayStatisticsDto.cs

@ -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
}
}

43
EC.App/EC.App/AutoWeight/Report/MonthStatisticsDto.cs

@ -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
}
}

75
EC.App/EC.App/AutoWeight/Report/ReportBll.cs

@ -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 获取数据
}
}

73
EC.App/EC.App/AutoWeight/Report/ReportIBll.cs

@ -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 获取数据
}
}

480
EC.App/EC.App/AutoWeight/Report/ReportService.cs

@ -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 获取数据
}
}

119
EC.App/EC.App/AutoWeight/Site/SiteBll.cs

@ -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 提交数据
}
}

75
EC.App/EC.App/AutoWeight/Site/SiteEntity.cs

@ -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
}
}

46
EC.App/EC.App/AutoWeight/Site/SiteIBll.cs

@ -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 提交数据
}
}

114
EC.App/EC.App/AutoWeight/Site/SiteService.cs

@ -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 提交数据
}
}

132
EC.App/EC.App/AutoWeight/Supplier/SupplierBll.cs

@ -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 提交数据
}
}

119
EC.App/EC.App/AutoWeight/Supplier/SupplierEntity.cs

@ -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
}
}

74
EC.App/EC.App/AutoWeight/Supplier/SupplierIBll.cs

@ -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 提交数据
}
}

158
EC.App/EC.App/AutoWeight/Supplier/SupplierService.cs

@ -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 提交数据
}
}

135
EC.App/EC.App/AutoWeight/Trailer/TrailerBll.cs

@ -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 提交数据
}
}

90
EC.App/EC.App/AutoWeight/Trailer/TrailerEntity.cs

@ -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
}
}

74
EC.App/EC.App/AutoWeight/Trailer/TrailerIBll.cs

@ -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 提交数据
}
}

165
EC.App/EC.App/AutoWeight/Trailer/TrailerService.cs

@ -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 提交数据
}
}

163
EC.App/EC.App/AutoWeight/TransportBill/TransportBillBll.cs

@ -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 提交数据
}
}

215
EC.App/EC.App/AutoWeight/TransportBill/TransportBillEntity.cs

@ -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
}
}

62
EC.App/EC.App/AutoWeight/TransportBill/TransportBillIBll.cs

@ -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 提交数据
}
}

183
EC.App/EC.App/AutoWeight/TransportBill/TransportBillService.cs

@ -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 提交数据
}
}

34
EC.App/EC.App/AutoWeight/TransportBill/TransportBillVolumeDto.cs

@ -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
}
}

135
EC.App/EC.App/AutoWeight/Truck/TruckBll.cs

@ -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 提交数据
}
}

90
EC.App/EC.App/AutoWeight/Truck/TruckEntity.cs

@ -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
}
}

74
EC.App/EC.App/AutoWeight/Truck/TruckIBll.cs

@ -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 提交数据
}
}

165
EC.App/EC.App/AutoWeight/Truck/TruckService.cs

@ -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 提交数据
}
}

18
EC.App/EC.App/EC.App.csproj

@ -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>

18
EC.App/EC.App/Model/State/BillState.cs

@ -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
}
}

12
EC.Web/.config/dotnet-tools.json

@ -0,0 +1,12 @@
{
"version": 1,
"isRoot": true,
"tools": {
"dotnet-ef": {
"version": "5.0.2",
"commands": [
"dotnet-ef"
]
}
}
}

116
EC.Web/Areas/AutoWeight/Controllers/AuthController.cs

@ -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 提交数据
}
}

146
EC.Web/Areas/AutoWeight/Controllers/DriverController.cs

@ -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 提交数据
}
}

16
EC.Web/Areas/AutoWeight/Controllers/HomeController.cs

@ -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();
}
}
}

136
EC.Web/Areas/AutoWeight/Controllers/IniController.cs

@ -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 提交数据
}
}

162
EC.Web/Areas/AutoWeight/Controllers/MonthPlanController.cs

@ -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 提交数据
}
}

161
EC.Web/Areas/AutoWeight/Controllers/PhotoController.cs

@ -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 扩展方法
}
}

354
EC.Web/Areas/AutoWeight/Controllers/ReportController.cs

@ -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 获取数据
}
}

133
EC.Web/Areas/AutoWeight/Controllers/SiteController.cs

@ -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 提交数据
}
}

148
EC.Web/Areas/AutoWeight/Controllers/SupplierController.cs

@ -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 提交数据
}
}

13
EC.Web/Areas/AutoWeight/Controllers/TestController.cs

@ -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();
}
}
}

146
EC.Web/Areas/AutoWeight/Controllers/TrailerController.cs

@ -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 提交数据
}
}

139
EC.Web/Areas/AutoWeight/Controllers/TransportBillController.cs

@ -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 提交数据
}
}

146
EC.Web/Areas/AutoWeight/Controllers/TruckController.cs

@ -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 提交数据
}
}

95
EC.Web/Areas/AutoWeight/Views/Auth/Form.cshtml

@ -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>

255
EC.Web/Areas/AutoWeight/Views/Auth/Index.cshtml

@ -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>&nbsp;<span class="lrlg">查询</span></a>
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i>&nbsp;<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>&nbsp;<span class="lrlg">新增</span></a>
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></a>
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<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: "&emsp;查询时间:<br>创建时间<br>" +
"&emsp;查询关键字:<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>

244
EC.Web/Areas/AutoWeight/Views/Driver/Form.cshtml

@ -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>

279
EC.Web/Areas/AutoWeight/Views/Driver/Index.cshtml

@ -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>&nbsp;<span class="lrlg">查询</span></a>
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i>&nbsp;<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>&nbsp;<span class="lrlg">新增</span></a>
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></a>
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<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: "&emsp;查询时间:<br>创建时间<br>" +
"&emsp;查询关键字:<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>

56
EC.Web/Areas/AutoWeight/Views/Ini/Form.cshtml

@ -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>

203
EC.Web/Areas/AutoWeight/Views/Ini/Index.cshtml

@ -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>&nbsp;<span class="lrlg">查询</span></a>
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i>&nbsp;<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>&nbsp;<span class="lrlg">新增</span></a>
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></a>
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<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: "&emsp;查询时间:<br>创建时间<br>" +
"&emsp;查询关键字:<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>

85
EC.Web/Areas/AutoWeight/Views/MonthPlan/Form.cshtml

@ -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>

350
EC.Web/Areas/AutoWeight/Views/MonthPlan/Index.cshtml

@ -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>&nbsp;<span class="lrlg">查询</span></a>
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i>&nbsp;<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>&nbsp;<span class="lrlg">新增</span></a>
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></a>
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<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>&nbsp;<span class="lrlg">更多</span><span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right">
<li id="btn_reCount"><a><i></i>&nbsp;<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: "&emsp;查询时间:<br>创建时间<br>" +
"&emsp;查询关键字:<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>

110
EC.Web/Areas/AutoWeight/Views/Photo/Form.cshtml

@ -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>

162
EC.Web/Areas/AutoWeight/Views/Photo/Index.cshtml

@ -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">&nbsp;重&nbsp;&nbsp;置</a>
<a id="lr_btn_qSearch" class="btn btn-primary">&nbsp;查&nbsp;&nbsp;询</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>&nbsp;<span class="lrlg">新增</span></a>
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></a>
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<span class="lrlg">删除</span></a>
<a id="btn_print" class="btn btn-default"><i class="fa fa-print"></i>&nbsp;<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>

261
EC.Web/Areas/AutoWeight/Views/Report/BillRateScatterChartByDay.cshtml

@ -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>

258
EC.Web/Areas/AutoWeight/Views/Report/BillRateScatterChartByMonth.cshtml

@ -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>

252
EC.Web/Areas/AutoWeight/Views/Report/BillVolumeLineChartByMonth.cshtml

@ -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>

247
EC.Web/Areas/AutoWeight/Views/Report/BillVolumeScatterChartByDay.cshtml

@ -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>

268
EC.Web/Areas/AutoWeight/Views/Report/MonthPlanSheet.cshtml

@ -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>

394
EC.Web/Areas/AutoWeight/Views/Report/StatisticsSheetByDay.cshtml

@ -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>

383
EC.Web/Areas/AutoWeight/Views/Report/StatisticsSheetByMonth.cshtml

@ -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>

383
EC.Web/Areas/AutoWeight/Views/Report/StatisticsSheetByYear.cshtml

@ -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>

392
EC.Web/Areas/AutoWeight/Views/Report/TruckGradeSheetByMonth.cshtml

@ -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>

70
EC.Web/Areas/AutoWeight/Views/Site/Form.cshtml

@ -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>

252
EC.Web/Areas/AutoWeight/Views/Site/Index.cshtml

@ -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>&nbsp;<span class="lrlg">查询</span></a>
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i>&nbsp;<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>&nbsp;<span class="lrlg">新增</span></a>
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></a>
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<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:
"&emsp;查询时间:<br>创建时间<br>" +
"&emsp;查询关键字:<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>

89
EC.Web/Areas/AutoWeight/Views/Supplier/Form.cshtml

@ -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>

221
EC.Web/Areas/AutoWeight/Views/Supplier/Index.cshtml

@ -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>&nbsp;<span class="lrlg">查询</span></a>
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i>&nbsp;<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>&nbsp;<span class="lrlg">新增</span></a>
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></a>
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<span class="lrlg">删除</span></a>
<a id="btn_print" class="btn btn-default"><i class="fa fa-print"></i>&nbsp;<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: "&emsp;查询时间:<br>创建时间<br>" +
"&emsp;查询关键字:<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>

124
EC.Web/Areas/AutoWeight/Views/Test/Index.cshtml

@ -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>

69
EC.Web/Areas/AutoWeight/Views/Trailer/Form.cshtml

@ -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>

246
EC.Web/Areas/AutoWeight/Views/Trailer/Index.cshtml

@ -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>&nbsp;<span class="lrlg">查询</span></a>
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i>&nbsp;<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>&nbsp;<span class="lrlg">新增</span></a>
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></a>
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<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: "&emsp;查询时间:<br>创建时间<br>" +
"&emsp;查询关键字:<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>

253
EC.Web/Areas/AutoWeight/Views/TransportBill/Form.cshtml

@ -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>

609
EC.Web/Areas/AutoWeight/Views/TransportBill/Index.cshtml

@ -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>&nbsp;<span class="lrlg">查询</span></a>
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i>&nbsp;<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>&nbsp;<span class="lrlg">新增</span></a>
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></a>
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<span class="lrlg">删除</span></a>
<a id="btn_export" class="btn btn-default"><i class="fa fa-sign-out"></i>&nbsp;<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: "&emsp;查询时间:<br>驶入开始时间<br>" +
"&emsp;查询关键字:<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>

69
EC.Web/Areas/AutoWeight/Views/Truck/Form.cshtml

@ -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>

246
EC.Web/Areas/AutoWeight/Views/Truck/Index.cshtml

@ -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>&nbsp;<span class="lrlg">查询</span></a>
<a id="btn_Reset" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i>&nbsp;<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>&nbsp;<span class="lrlg">新增</span></a>
<a id="btn_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></a>
<a id="btn_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<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: "&emsp;查询时间:<br>创建时间<br>" +
"&emsp;查询关键字:<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>

231
EC.Web/Areas/LR_AppManager/Controllers/DTImgController.cs

@ -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 提交数据
}
}

156
EC.Web/Areas/LR_AppManager/Controllers/FunctionManagerController.cs

@ -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 提交数据
}
}

120
EC.Web/Areas/LR_AppManager/Views/DTImg/Form.cshtml

@ -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>

186
EC.Web/Areas/LR_AppManager/Views/DTImg/Index.cshtml

@ -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>&nbsp;查询</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>&nbsp;新增</a>
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o lrlg"></i>&nbsp;编辑</a>
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o lrlg"></i>&nbsp;删除</a>
<a id="lr_more" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<i class="fa fa-reorder"></i>&nbsp;<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>&nbsp;<span class="lrlg">启用</span></a></li>
<li id="lr_disabled"><a><i></i>&nbsp;<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>

280
EC.Web/Areas/LR_AppManager/Views/FunctionManager/Form.cshtml

@ -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>

251
EC.Web/Areas/LR_AppManager/Views/FunctionManager/Index.cshtml

@ -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>&nbsp;<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>&nbsp;<span class="lrlg">新增</span></a>
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></a>
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<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>&nbsp;<span class="lrlg">更多</span><span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right">
<li id="lr_enable"><a><i></i>&nbsp;<span class="lrlg">启用</span></a></li>
<li id="lr_disabled"><a><i></i>&nbsp;<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>&nbsp;<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>

83
EC.Web/Areas/LR_AuthorizeModule/Controllers/AuthorizeController.cs

@ -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…
Cancel
Save