StoreHouseService.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. /*
  2. * 仓库
  3. */
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Data;
  8. using MySystem.Models.Main;
  9. using Library;
  10. using LitJson;
  11. namespace MySystem.Service.Main
  12. {
  13. public class StoreHouseService
  14. {
  15. static string _conn = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
  16. // public StoreHouseService()
  17. // {
  18. // _conn = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
  19. // }
  20. /// <summary>
  21. /// 查询列表
  22. /// </summary>
  23. /// <param name="relationData">关联表</param>
  24. /// <param name="condition">查询条件(sql语句)</param>
  25. /// <param name="count">总数(输出)</param>
  26. /// <param name="page">页码</param>
  27. /// <param name="limit">每页条数</param>
  28. /// <returns></returns>
  29. public static List<Dictionary<string, object>> List(List<RelationData> relationData, string condition, out int count, int page = 1, int limit = 30, string orderBy = "Sort desc,Id desc")
  30. {
  31. List<string> fields = new List<string>(); //要显示的列
  32. fields.Add("Id");
  33. fields.Add("CreateDate"); //添加时间
  34. fields.Add("CreateMan"); //创建/修改人
  35. fields.Add("Status"); //状态
  36. fields.Add("StoreNo"); //仓库编号
  37. fields.Add("StoreName"); //仓库名称
  38. fields.Add("UserId"); //仓库归属人
  39. fields.Add("BrandId"); //产品类型
  40. fields.Add("ProductName"); //产品名称
  41. fields.Add("Address"); //仓库地址
  42. fields.Add("ManageUserId"); //仓库管理员
  43. fields.Add("ManagerEmail"); //管理者邮箱
  44. // fields.Add("ParentStoreId"); //父级Id
  45. // fields.Add("ParentNav"); //父级集合
  46. fields.Add("StoreType"); //仓库类型
  47. fields.Add("TotalNum"); //总库存数
  48. fields.Add("LaveNum"); //剩余库存数
  49. fields.Add("OutNum"); //出库数
  50. // fields.Add("Remark"); //备注
  51. fields.Add("Areas"); //所属地区
  52. // fields.Add("LimitTopUserId"); //限制创客特殊仓库
  53. fields.Add("StoreStatus"); //仓库状态
  54. fields.Add("StoreKind"); //仓库归属类型
  55. fields.Add("ManageMobile"); //管理者手机号
  56. fields.Add("AuthFlag"); //认证标识
  57. fields.Add("AuthDate"); //认证时间
  58. fields.Add("OpId"); //运营中心
  59. fields.Add("Deposit"); //押金
  60. fields.Add("FilePath"); //附件
  61. // fields.Add("ThisMonthSendCount"); //本月发货量
  62. Dictionary<string, object> obj = new DbService(AppConfig.Base.mainTables, _conn).IndexData("StoreHouse", relationData, orderBy, page, limit, condition, fields);
  63. List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
  64. count = int.Parse(obj["count"].ToString());
  65. return diclist;
  66. }
  67. public static List<Dictionary<string, object>> List(List<RelationData> relationData, string condition, int page = 1, int limit = 30, string orderBy = "Sort desc,Id desc")
  68. {
  69. List<string> fields = new List<string>(); //要显示的列
  70. fields.Add("Id");
  71. fields.Add("CreateDate"); //添加时间
  72. fields.Add("Status"); //状态
  73. fields.Add("StoreNo"); //仓库编号
  74. fields.Add("StoreName"); //仓库名称
  75. fields.Add("UserId"); //仓库归属人
  76. fields.Add("BrandId"); //产品类型
  77. fields.Add("ProductName"); //产品名称
  78. fields.Add("Address"); //仓库地址
  79. fields.Add("ManageUserId"); //仓库管理员
  80. fields.Add("ManagerEmail"); //管理者邮箱
  81. fields.Add("ParentStoreId"); //父级Id
  82. fields.Add("ParentNav"); //父级集合
  83. fields.Add("StoreType"); //仓库类型
  84. fields.Add("TotalNum"); //总库存数
  85. fields.Add("LaveNum"); //剩余库存数
  86. fields.Add("OutNum"); //出库数
  87. fields.Add("Remark"); //备注
  88. fields.Add("Areas"); //所属地区
  89. fields.Add("LimitTopUserId"); //限制创客特殊仓库
  90. fields.Add("StoreStatus"); //仓库状态
  91. fields.Add("StoreKind"); //仓库归属类型
  92. fields.Add("ManageMobile"); //管理者手机号
  93. fields.Add("AuthFlag"); //认证标识
  94. fields.Add("AuthDate"); //认证时间
  95. fields.Add("OpId"); //运营中心
  96. fields.Add("Deposit"); //押金
  97. fields.Add("FilePath"); //附件
  98. fields.Add("ThisMonthSendCount"); //本月发货量
  99. Dictionary<string, object> obj = new DbService(AppConfig.Base.mainTables, _conn).IndexData("StoreHouse", relationData, orderBy, page, limit, condition, fields);
  100. List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
  101. return diclist;
  102. }
  103. /// <summary>
  104. /// 查询一条记录
  105. /// </summary>
  106. /// <param name="Id">主键Id</param>
  107. /// <returns></returns>
  108. public static StoreHouse Query(int Id)
  109. {
  110. WebCMSEntities db = new WebCMSEntities();
  111. StoreHouse editData = db.StoreHouse.FirstOrDefault(m => m.Id == Id) ?? new StoreHouse();
  112. db.Dispose();
  113. return editData;
  114. }
  115. /// <summary>
  116. /// 根据指定条件查询数据
  117. /// </summary>
  118. /// <param name="condition"></param>
  119. /// <returns></returns>
  120. public static StoreHouse Query(string condition)
  121. {
  122. DataTable dt = new DbService(AppConfig.Base.mainTables, _conn).QueryDetail("*", "StoreHouse", condition);
  123. if(dt.Rows.Count > 0)
  124. {
  125. Dictionary<string, object> row = new Dictionary<string, object>();
  126. foreach(DataColumn dc in dt.Columns)
  127. {
  128. row.Add(dc.ColumnName, dt.Rows[0][dc.ColumnName].ToString());
  129. }
  130. return Newtonsoft.Json.JsonConvert.DeserializeObject<StoreHouse>(Newtonsoft.Json.JsonConvert.SerializeObject(row));
  131. }
  132. return new StoreHouse();
  133. }
  134. public static decimal Sum(string condition)
  135. {
  136. DataTable dt = new DbService(AppConfig.Base.mainTables, _conn).QueryDetail("Sum() Amount", "StoreHouse", condition);
  137. decimal amount = 0;
  138. if(dt.Rows.Count > 0)
  139. {
  140. foreach(DataColumn dc in dt.Columns)
  141. {
  142. amount = decimal.Parse(dt.Rows[0][dc.ColumnName].ToString());
  143. }
  144. }
  145. return amount;
  146. }
  147. /// <summary>
  148. /// 通过创客Id查询名下所有正常分仓返回仓库Id
  149. /// </summary>
  150. /// <param name="UserId">创客Id</param>
  151. /// <returns></returns>
  152. public static List<int> QueryStoreByUserId(int UserId)
  153. {
  154. WebCMSEntities db = new WebCMSEntities();
  155. List<int> StoreIds = new List<int>();
  156. var storeList = db.StoreHouse.Where(m => m.Sort == 0 && m.Status == 1 && m.UserId == UserId).ToList();
  157. foreach (var item in storeList)
  158. {
  159. StoreIds.Add(item.Id);
  160. }
  161. db.Dispose();
  162. return StoreIds;
  163. }
  164. /// <summary>
  165. /// 通过创客Id查询名下关联运营中心的分仓
  166. /// </summary>
  167. /// <param name="UserId">创客Id</param>
  168. /// <returns></returns>
  169. public static StoreHouse QueryOpByUserId(int UserId)
  170. {
  171. WebCMSEntities db = new WebCMSEntities();
  172. StoreHouse editData = db.StoreHouse.FirstOrDefault(m => m.Status > 0 && m.Sort == 0 && m.OpId > 0 && m.UserId == UserId) ?? new StoreHouse();
  173. db.Dispose();
  174. return editData;
  175. }
  176. /// <summary>
  177. /// 查询记录数
  178. /// </summary>
  179. /// <param name="Id">主键Id</param>
  180. /// <returns></returns>
  181. public static int Count(string condition = "")
  182. {
  183. int result = 0;
  184. DataTable dt = CustomerSqlConn.dtable("select count(Id) from StoreHouse where 1=1" + condition, _conn);
  185. if (dt.Rows.Count > 0)
  186. {
  187. result = int.Parse(function.CheckInt(dt.Rows[0][0].ToString()));
  188. }
  189. return result;
  190. }
  191. /// <summary>
  192. /// 查询是否存在
  193. /// </summary>
  194. /// <param name="Id">主键Id</param>
  195. /// <returns></returns>
  196. public static bool Exist(int Id)
  197. {
  198. WebCMSEntities db = new WebCMSEntities();
  199. bool check = db.StoreHouse.Any(m => m.Id == Id);
  200. db.Dispose();
  201. return check;
  202. }
  203. public static bool Exist(string condition)
  204. {
  205. DataTable dt = new DbService(AppConfig.Base.mainTables, _conn).QueryDetail("1", "StoreHouse", condition);
  206. if(dt.Rows.Count > 0)
  207. {
  208. return true;
  209. }
  210. return false;
  211. }
  212. /// <summary>
  213. /// 通过创客Id查询名下分仓是否关联运营中心
  214. /// </summary>
  215. /// <param name="UserId">创客Id</param>
  216. /// <returns></returns>
  217. public static bool ExistOpByUserId(int UserId)
  218. {
  219. WebCMSEntities db = new WebCMSEntities();
  220. bool check = db.StoreHouse.Any(m => m.Status > 0 && m.Sort == 0 && m.OpId > 0 && m.UserId == UserId);
  221. db.Dispose();
  222. return check;
  223. }
  224. /// <summary>
  225. /// 通过创客Id和品牌Id检查是否有同品牌分仓
  226. /// </summary>
  227. /// <param name="UserId">创客Id</param>
  228. /// <param name="BrandId">品牌Id</param>
  229. /// <returns></returns>
  230. public static bool ExistSameStoreBrandByUserIdAndBrandId(int UserId,string BrandId)
  231. {
  232. WebCMSEntities db = new WebCMSEntities();
  233. bool check = db.StoreHouse.Any(m => m.Status > -1 && m.Sort == 0 && m.UserId == UserId && m.BrandId == BrandId);
  234. db.Dispose();
  235. return check;
  236. }
  237. /// <summary>
  238. /// 通过创客Id查询名下是否存在分仓
  239. /// </summary>
  240. /// <param name="UserId">创客Id</param>
  241. /// <returns></returns>
  242. public static bool ExistStoreByUserId(int UserId)
  243. {
  244. WebCMSEntities db = new WebCMSEntities();
  245. bool check = db.StoreHouse.Any(m => m.Status > 0 && m.Sort == 0 && m.UserId == UserId);
  246. db.Dispose();
  247. return check;
  248. }
  249. /// <summary>
  250. /// 添加数据
  251. /// </summary>
  252. /// <param name="Fields">要设置的字段</param>
  253. /// <returns></returns>
  254. public static AppResultJson Add(Dictionary<string, object> fields, bool check = true)
  255. {
  256. int Id = new DbService(AppConfig.Base.mainTables, _conn).Add("StoreHouse", fields, 0);
  257. return new AppResultJson() { Status = "1", Data = Id };
  258. }
  259. /// <summary>
  260. /// 修改数据
  261. /// </summary>
  262. /// <param name="Fields">要设置的字段</param>
  263. /// <param name="Id">主键Id</param>
  264. public static AppResultJson Edit(Dictionary<string, object> fields, int Id, bool check = true)
  265. {
  266. new DbService(AppConfig.Base.mainTables, _conn).Edit("StoreHouse", fields, Id);
  267. return new AppResultJson() { Status = "1", Data = Id };
  268. }
  269. /// <summary>
  270. /// 逻辑删除
  271. /// </summary>
  272. /// <param name="Id">主键Id</param>
  273. public static void Remove(int Id)
  274. {
  275. Dictionary<string, object> fields = new Dictionary<string, object>();
  276. fields.Add("Status", -1);
  277. new DbService(AppConfig.Base.mainTables, _conn).Edit("StoreHouse", fields, Id);
  278. }
  279. /// <summary>
  280. /// 删除数据
  281. /// </summary>
  282. /// <param name="Id">主键Id</param>
  283. public static void Delete(int Id)
  284. {
  285. new DbService(AppConfig.Base.mainTables, _conn).Delete("StoreHouse", Id);
  286. }
  287. /// <summary>
  288. /// 排序
  289. /// </summary>
  290. /// <param name="Id">主键Id</param>
  291. /// <param name="Sort">排序序号</param>
  292. public static void Sort(int Id, int Sort)
  293. {
  294. new DbService(AppConfig.Base.mainTables, _conn).Sort("StoreHouse", Sort, Id);
  295. }
  296. /// <summary>
  297. /// 导入数据
  298. /// </summary>
  299. /// <param name="ExcelData">json数据</param>
  300. public static void Import(string ExcelData)
  301. {
  302. WebCMSEntities db = new WebCMSEntities();
  303. JsonData list = JsonMapper.ToObject(ExcelData);
  304. for (int i = 1; i < list.Count; i++)
  305. {
  306. JsonData dr = list[i];
  307. db.StoreHouse.Add(new StoreHouse()
  308. {
  309. CreateDate = DateTime.Now,
  310. UpdateDate = DateTime.Now,
  311. });
  312. db.SaveChanges();
  313. }
  314. db.Dispose();
  315. }
  316. /// <summary>
  317. /// 导出excel表格
  318. /// </summary>
  319. /// <param name="fields">查询条件(单个字段)</param>
  320. /// <param name="condition">查询条件(sql语句)</param>
  321. /// <returns></returns>
  322. // public void ExportExcel(List<RelationData> relationData, string condition)
  323. // {
  324. // }
  325. }
  326. }