|
|
using DSWeb.Areas.Storage.DB;
|
|
|
using DSWeb.Areas.Storage.Models;
|
|
|
using System.Web.Mvc;
|
|
|
using System.Linq;
|
|
|
using System.Configuration;
|
|
|
using DSWeb.Areas.Storage.Helper;
|
|
|
using Newtonsoft.Json;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Web;
|
|
|
using System.Globalization;
|
|
|
using DSWeb.Areas.Dispatch.Controllers;
|
|
|
using DSWeb.Storage.DAL;
|
|
|
using log4net;
|
|
|
|
|
|
using HcUtility.Comm;
|
|
|
using DSWeb.SoftMng.BLL;
|
|
|
using DSWeb.SoftMng.Model;
|
|
|
using DSWeb.SoftMng.Common;
|
|
|
using DSWeb.Areas.CommMng.DAL;
|
|
|
|
|
|
namespace DSWeb.Areas.Storage.Controllers
|
|
|
{
|
|
|
public class StorageController: Controller
|
|
|
{
|
|
|
private static readonly string StateKeyRegist = "regist";
|
|
|
//private static readonly string StateKeyDispatchList = "dispatchlist";
|
|
|
//private static readonly string StateKeyGrabList = "grablist";
|
|
|
//private static readonly string StateKeyFeeList = "feelist";
|
|
|
private static readonly string StateKeyRegistCust = "registCust";
|
|
|
private static readonly string StateKeyStorageList = "storagelist";
|
|
|
private static readonly string StateKeyStockList = "stocklist"; //裕龙库存查询
|
|
|
private static readonly string StateKeyKucunList = "kucunlist"; //裕龙库存查询
|
|
|
private static readonly string StateKeyRegistCustHJ = "registCustHJ"; //裕龙注册
|
|
|
|
|
|
|
|
|
private static string appid = ConfigurationManager.AppSettings["YuLongStorageAppId"];
|
|
|
private static string appsecret = string.Empty;
|
|
|
private static string dispatchServerUrl = ConfigurationManager.AppSettings["BeitongDispatchServerUrl"];
|
|
|
private static string storageServerUrl = ConfigurationManager.AppSettings["YuLongStorageServerUrl"];
|
|
|
|
|
|
private ILog logger = LogManager.GetLogger("StorageController");
|
|
|
|
|
|
private DataContext dataContext = new DataContext();
|
|
|
|
|
|
public StorageController()
|
|
|
{
|
|
|
//var config = dataContext.MpConfigs.FirstOrDefault(c => c.AppId == appid);
|
|
|
//if (config == null)
|
|
|
//{
|
|
|
// throw new Exception($"未找到公众号(ID: {appid}) 的配置记录,请配置后再试!");
|
|
|
//}
|
|
|
//appsecret = config.AppSecret;
|
|
|
}
|
|
|
|
|
|
|
|
|
#region 出入库查询
|
|
|
public ActionResult StorageList(string OPENID)
|
|
|
{
|
|
|
ViewData["openid"] = OPENID;
|
|
|
return View();
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 查询入库
|
|
|
//public ActionResult InDoList(string mblno)
|
|
|
//{
|
|
|
// var indoinfo = dataContext.IndoInfo.FirstOrDefault(d => d.MBLNO == mblno);
|
|
|
// if (indoinfo == null)
|
|
|
// {
|
|
|
// return RedirectToAction("DispInfoClientRegist", new { mblno });
|
|
|
// }
|
|
|
// ViewData["mblno"] = mblno;
|
|
|
// return View();
|
|
|
//}
|
|
|
|
|
|
[HttpPost]
|
|
|
public JsonResult InDoListData(string openid,string mblno, int page = 1, int pageSize = 10)
|
|
|
{
|
|
|
RespGetIndo resp = new RespGetIndo();
|
|
|
//var infoClient = dataContext.IndoInfo.FirstOrDefault(d => d.MBLNO == mblno);
|
|
|
|
|
|
|
|
|
|
|
|
var dataList = MsWMSDAL.GetIndoDataList(mblno, null, null);
|
|
|
var list = dataList.Skip((page - 1) * pageSize).Take(pageSize);
|
|
|
|
|
|
resp.Success = true;
|
|
|
resp.Message = "查询成功";
|
|
|
resp.Data = list.ToList();
|
|
|
resp.Total = dataList.Count;
|
|
|
return Json(resp);
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 查询出库
|
|
|
//public ActionResult OutDoList(string mblno)
|
|
|
//{
|
|
|
// var indoinfo = dataContext.OutdoInfo.FirstOrDefault(d => d.MBLNO == mblno);
|
|
|
|
|
|
// ViewData["mblno"] = mblno;
|
|
|
// return View();
|
|
|
//}
|
|
|
|
|
|
[HttpPost]
|
|
|
public JsonResult OutDoListData(string openid, string mblno, int page = 1, int pageSize = 10)
|
|
|
{
|
|
|
RespGetOutdo resp = new RespGetOutdo();
|
|
|
//var infoClient = dataContext.OutdoInfo.FirstOrDefault(d => d.MBLNO == mblno);
|
|
|
var dataList = MsWMSDAL.GetOutdoDataList(mblno, null, null);
|
|
|
var list = dataList.Skip((page - 1) * pageSize).Take(pageSize);
|
|
|
|
|
|
resp.Success = true;
|
|
|
resp.Message = "查询成功";
|
|
|
resp.Data = list.ToList();
|
|
|
resp.Total = dataList.Count;
|
|
|
return Json(resp);
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 入库委托详情
|
|
|
public ActionResult StorageInDetail(string wmsid)
|
|
|
{
|
|
|
ViewData["wmsid"] = wmsid;
|
|
|
return View();
|
|
|
}
|
|
|
|
|
|
public ActionResult StorageInDetailData(string wmsid)
|
|
|
{
|
|
|
var model = MsWMSDAL.GetOneIndoByWMSID(wmsid);
|
|
|
|
|
|
var obj = new
|
|
|
{
|
|
|
model.WMSID,
|
|
|
model.MBLNO,
|
|
|
model.DODATE,
|
|
|
model.GOODSNAME,
|
|
|
model.PKGS,
|
|
|
model.KGS
|
|
|
// FEE_LIST = dataList,
|
|
|
//STATE_LIST = staList
|
|
|
};
|
|
|
return Json(obj);
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 出库委托详情
|
|
|
public ActionResult StorageOutDetail(string wmsid)
|
|
|
{
|
|
|
ViewData["wmsid"] = wmsid;
|
|
|
return View();
|
|
|
}
|
|
|
|
|
|
public ActionResult StorageOutDetailData(string wmsid)
|
|
|
{
|
|
|
var model = MsWMSDAL.GetOneOutdoByWMSID(wmsid);
|
|
|
|
|
|
var obj = new
|
|
|
{
|
|
|
model.WMSID,
|
|
|
model.MBLNO,
|
|
|
model.DODATE,
|
|
|
model.GOODSNAME,
|
|
|
model.PKGS,
|
|
|
model.KGS
|
|
|
// FEE_LIST = dataList,
|
|
|
//STATE_LIST = staList
|
|
|
};
|
|
|
return Json(obj);
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 库存查询
|
|
|
|
|
|
|
|
|
[HttpPost]
|
|
|
public JsonResult StorageData(string openid, int page = 1, int pageSize = 10)
|
|
|
{
|
|
|
RespGetKuCun resp = new RespGetKuCun();
|
|
|
//var infoClient = dataContext.IndoInfo.FirstOrDefault(d => d.MBLNO == mblno);
|
|
|
var dataList = MsWMSDAL.GetKuCunDataList(openid, null, null);
|
|
|
var list = dataList.Skip((page - 1) * pageSize).Take(pageSize);
|
|
|
|
|
|
resp.Success = true;
|
|
|
resp.Message = "查询成功";
|
|
|
resp.Data = list.ToList();
|
|
|
resp.Total = dataList.Count;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
}
|
|
|
public JsonResult DQStorageData(string openid, int page = 1, int pageSize = 10)
|
|
|
{
|
|
|
RespGetKuCun resp = new RespGetKuCun();
|
|
|
//var infoClient = dataContext.IndoInfo.FirstOrDefault(d => d.MBLNO == mblno);
|
|
|
var dataList = MsWMSDAL.GetDQKuCunDataList(openid, null, null);
|
|
|
var list = dataList.Skip((page - 1) * pageSize).Take(pageSize);
|
|
|
|
|
|
resp.Success = true;
|
|
|
resp.Message = "查询成功";
|
|
|
resp.Data = list.ToList();
|
|
|
resp.Total = dataList.Count;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
}
|
|
|
public ActionResult KucunList(string openid)
|
|
|
{
|
|
|
ViewData["openid"] = openid;
|
|
|
return View();
|
|
|
}
|
|
|
|
|
|
public ActionResult StorageMap(string STOREHOUSE,string AREACODE)
|
|
|
{
|
|
|
ViewData["STOREHOUSE"] = STOREHOUSE;
|
|
|
ViewData["AREACODE"] = AREACODE;
|
|
|
|
|
|
//var MapHtml = GetMapHtml(STOREHOUSE, AREACODE);
|
|
|
//ViewData["MapHtml"] = MapHtml;
|
|
|
|
|
|
return View();
|
|
|
}
|
|
|
public ActionResult StorageMapstr(string STOREHOUSE, string AREACODE,string GOODSINFO)
|
|
|
{
|
|
|
//ViewData["STOREHOUSE"] = STOREHOUSE;
|
|
|
//ViewData["AREACODE"] = AREACODE;
|
|
|
|
|
|
var MapHtml = GetMapHtml(STOREHOUSE, AREACODE, GOODSINFO);
|
|
|
//ViewData["MapHtml"] = MapHtml;
|
|
|
|
|
|
return Content(MapHtml);
|
|
|
}
|
|
|
private string GetMapHtml(string STOREHOUSE, string AREACODE, string GOODSINFO) {
|
|
|
|
|
|
string result = "";
|
|
|
|
|
|
result = GetMapDetail(STOREHOUSE);
|
|
|
|
|
|
//然后寻找这个AREACODE所在的单元 将它所在的格设置成红色
|
|
|
SetAreacodeColor(ref result,AREACODE, GOODSINFO);
|
|
|
|
|
|
result = GetBaseHtml(result);
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
private string GetMapDetail(string STOREHOUSE) {
|
|
|
|
|
|
string result = "";
|
|
|
|
|
|
//if (STOREHOUSE == "0001")// 00050036
|
|
|
//{
|
|
|
result = @" <div class=""NO01"">
|
|
|
<table cellspacing=""0"" cellpadding=""0"">
|
|
|
<tbody>
|
|
|
<tr>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>A1-4</b>
|
|
|
<li id='00010001'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00020002'></li>
|
|
|
<b>A1-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>A1-2</b>
|
|
|
<li id='00050034'></li>
|
|
|
</ul>
|
|
|
|
|
|
<ul>
|
|
|
<li id='00050033'></li>
|
|
|
<b>A1-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td class=""NO-space"" style=""width:80px;background:#f8f8f9;"">
|
|
|
<div class=""south"">
|
|
|
南
|
|
|
<span>↑</span>
|
|
|
</div>
|
|
|
<div class=""north"">
|
|
|
<span>↓</span>
|
|
|
北
|
|
|
</div>
|
|
|
<div class=""NO01-door"">6号门</div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>A2-4</b>
|
|
|
<li id='00050040'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050039'></li>
|
|
|
<b>A2-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>A2-2</b>
|
|
|
<li id='00050038'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050037'></li>
|
|
|
<b>A2-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>A3-4</b>
|
|
|
<li id='00050044'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050043'></li>
|
|
|
<b>A3-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>A3-2</b>
|
|
|
<li id='00050042'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050041'></li>
|
|
|
<b>A3-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td class=""NO-space"" style=""width:80px;background:#f8f8f9;"">
|
|
|
<div class=""south"">
|
|
|
南
|
|
|
<span>↑</span>
|
|
|
</div>
|
|
|
<div class=""north"">
|
|
|
<span>↓</span>
|
|
|
北
|
|
|
</div>
|
|
|
<div class=""NO01-door"">5号门</div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>A4-4</b>
|
|
|
<li id='00050048'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050047'></li>
|
|
|
<b>A4-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>A4-2</b>
|
|
|
<li id='00050046'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050045'></li>
|
|
|
<b>A4-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>B1-4</b>
|
|
|
<li id='00050020'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050019'></li>
|
|
|
<b>B1-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>B1-2</b>
|
|
|
<li id='00050018'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050017'></li>
|
|
|
<b>B1-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td class=""NO-space"" style=""width:80px;background:#f8f8f9;"">
|
|
|
<div class=""south"">
|
|
|
南
|
|
|
<span>↑</span>
|
|
|
</div>
|
|
|
<div class=""north"">
|
|
|
<span>↓</span>
|
|
|
北
|
|
|
</div>
|
|
|
<div class=""NO01-door"">4号门</div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>B2-4</b>
|
|
|
<li id='00050024'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050023'></li>
|
|
|
<b>B2-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>B2-2</b>
|
|
|
<li id='00050022'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050021'></li>
|
|
|
<b>B2-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>B3-4</b>
|
|
|
<li id='00050028'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050027'></li>
|
|
|
<b>B3-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>B3-2</b>
|
|
|
<li id='00050026'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050025'></li>
|
|
|
<b>B3-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td class=""NO-space"" style=""width:80px;background:#f8f8f9;"">
|
|
|
<div class=""south"">
|
|
|
南
|
|
|
<span>↑</span>
|
|
|
</div>
|
|
|
<div class=""north"">
|
|
|
<span>↓</span>
|
|
|
北
|
|
|
</div>
|
|
|
<div class=""NO01-door"">3号门</div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>B4-4</b>
|
|
|
<li id='00050032'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050031'></li>
|
|
|
<b>B4-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>B4-2</b>
|
|
|
<li id='00050030'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050029'></li>
|
|
|
<b>B4-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>C1-4</b>
|
|
|
<li id='00050004'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050003'></li>
|
|
|
<b>C1-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>C1-2</b>
|
|
|
<li id='00050002'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050001'></li>
|
|
|
<b>C1-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td class=""NO-space"" style=""width:80px;background:#f8f8f9;"">
|
|
|
<div class=""south"">
|
|
|
南
|
|
|
<span>↑</span>
|
|
|
</div>
|
|
|
<div class=""north"">
|
|
|
<span>↓</span>
|
|
|
北
|
|
|
</div>
|
|
|
<div class=""NO01-door"">2号门</div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>C2-4</b>
|
|
|
<li id='00050008'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050007'></li>
|
|
|
<b>C2-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>C2-2</b>
|
|
|
<li id='00050006'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050005'></li>
|
|
|
<b>C2-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>C3-4</b>
|
|
|
<li id='00050012'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050011'></li>
|
|
|
<b>C3-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>C3-2</b>
|
|
|
<li id='00050010'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050009'></li>
|
|
|
<b>C3-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
<td class=""NO-space"" style=""width:80px;background:#f8f8f9;"">
|
|
|
<div class=""south"">
|
|
|
南
|
|
|
<span>↑</span>
|
|
|
</div>
|
|
|
<div class=""north"">
|
|
|
<span>↓</span>
|
|
|
北
|
|
|
</div>
|
|
|
<div class=""NO01-door"">1号门</div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<ul>
|
|
|
<b>C4-4</b>
|
|
|
<li id='00050016'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050015'></li>
|
|
|
<b>C4-3</b>
|
|
|
</ul>
|
|
|
<div class=""open-space""></div>
|
|
|
<ul>
|
|
|
<b>C4-2</b>
|
|
|
<li id='00050014'></li>
|
|
|
</ul>
|
|
|
<ul>
|
|
|
<li id='00050013'></li>
|
|
|
<b>C4-1</b>
|
|
|
</ul>
|
|
|
</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
</div>";
|
|
|
|
|
|
|
|
|
var storehouseinfo = MsWMSDAL.GetSTOREHOUSE(STOREHOUSE);
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(storehouseinfo.MAPHTML)) {
|
|
|
result = storehouseinfo.MAPHTML;
|
|
|
}
|
|
|
|
|
|
//}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
private void SetAreacodeColor(ref string Html, string AREACODE, string GOODSINFO)
|
|
|
{
|
|
|
|
|
|
var areaIndex = Html.IndexOf(AREACODE);
|
|
|
|
|
|
//向前寻找<ul> 将其修改为
|
|
|
var keyfield = "<ul";
|
|
|
var newfield = @"<ul style=""background: orange; """;
|
|
|
|
|
|
if (areaIndex == -1) return;//没找到就结束
|
|
|
|
|
|
Html = Html.Insert(areaIndex+2+AREACODE.Length, GOODSINFO);
|
|
|
|
|
|
var lastulindex = Html.Substring(0, areaIndex).LastIndexOf(keyfield);
|
|
|
|
|
|
Html = Html.Remove(lastulindex, keyfield.Length).Insert(lastulindex, newfield);
|
|
|
}
|
|
|
|
|
|
private string GetBaseHtml(string htmlstr) {
|
|
|
var result= @"<!DOCTYPE html>
|
|
|
<html>
|
|
|
|
|
|
<head>
|
|
|
<meta charset=""utf-8"">
|
|
|
<title></title>
|
|
|
<style type=""text/css"">
|
|
|
.shengjie-map {
|
|
|
width: 1200px;
|
|
|
height: 600px;
|
|
|
position: relative;
|
|
|
margin: 15px auto;
|
|
|
padding: 15px;
|
|
|
}
|
|
|
|
|
|
.shengjie-map .east-01,
|
|
|
.shengjie-map .east-02,
|
|
|
.shengjie-map .east-03,
|
|
|
.shengjie-map .east-04 {
|
|
|
width: 500px;
|
|
|
height: 110px;
|
|
|
line-height: 110px;
|
|
|
text-align: center;
|
|
|
background: #bed6f8;
|
|
|
border: 1px dashed #6391c0;
|
|
|
font-size: 18px;
|
|
|
color: #6391c0;
|
|
|
margin-bottom: 10px;
|
|
|
}
|
|
|
|
|
|
.shengjie-map .west-01,
|
|
|
.shengjie-map .west-02,
|
|
|
.shengjie-map .west-03,
|
|
|
.shengjie-map .west-04 {
|
|
|
width: 500px;
|
|
|
height: 110px;
|
|
|
line-height: 110px;
|
|
|
text-align: center;
|
|
|
background: #fbcbb4;
|
|
|
border: 1px dashed #b45c50;
|
|
|
font-size: 18px;
|
|
|
color: #b45c50;
|
|
|
margin-bottom: 10px;
|
|
|
}
|
|
|
|
|
|
.shengjie-map .dire {
|
|
|
padding-top: 50px;
|
|
|
padding-right: 50px;
|
|
|
}
|
|
|
|
|
|
/*公共样式 */
|
|
|
table tbody tr td ul li {
|
|
|
list-style: none;
|
|
|
}
|
|
|
|
|
|
.NO1 {
|
|
|
width: 95%;
|
|
|
margin: 15px auto;
|
|
|
padding: 10px;
|
|
|
overflow-x: hidden;
|
|
|
overflow-x: scroll;
|
|
|
}
|
|
|
|
|
|
.NO2 {
|
|
|
width: 95%;
|
|
|
margin: 15px auto;
|
|
|
padding: 10px;
|
|
|
overflow-x: hidden;
|
|
|
overflow-x: scroll;
|
|
|
}
|
|
|
|
|
|
.NO3 {
|
|
|
width: 95%;
|
|
|
margin: 15px auto;
|
|
|
padding: 10px;
|
|
|
overflow-x: hidden;
|
|
|
overflow-x: scroll;
|
|
|
}
|
|
|
|
|
|
/*所有库方向 */
|
|
|
.direction {
|
|
|
font-size: 18px;
|
|
|
margin-bottom: 20px;
|
|
|
margin-left: 20px;
|
|
|
}
|
|
|
|
|
|
.direction span {
|
|
|
font-size: 22px;
|
|
|
margin-right: 5px;
|
|
|
}
|
|
|
|
|
|
.tit {
|
|
|
text-align: center;
|
|
|
font-size: 18px;
|
|
|
font-weight: bold;
|
|
|
}
|
|
|
|
|
|
table tr td {
|
|
|
position: relative;
|
|
|
}
|
|
|
|
|
|
table tr td ul {
|
|
|
width: 130px;
|
|
|
height: 140px;
|
|
|
padding: 5px 8px;
|
|
|
background: rgba(255, 235, 236, .45);
|
|
|
border: 1px solid rgba(239, 22, 18, .12);
|
|
|
border-top: 2px solid rgba(239, 22, 18, .4);
|
|
|
margin-right: 2px;
|
|
|
margin-bottom: 2px;
|
|
|
border-radius: 3px;
|
|
|
position: relative;
|
|
|
box-shadow: -1px -1px 3px 1px #ebebeb;
|
|
|
}
|
|
|
|
|
|
table tr td ul b {
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
|
|
|
table tr td ul li {
|
|
|
color: #757575;
|
|
|
word-break: break-all;
|
|
|
/*border-bottom:1px solid rgba(239,22,18,.12);*/
|
|
|
}
|
|
|
|
|
|
table tr td ul.right b {
|
|
|
position: absolute;
|
|
|
top: 55px;
|
|
|
right: -40px;
|
|
|
z-index: 2;
|
|
|
}
|
|
|
|
|
|
table tr td ul.left b {
|
|
|
position: absolute;
|
|
|
top: 30px;
|
|
|
left: -40px;
|
|
|
}
|
|
|
|
|
|
table tr td ul.bottom b {
|
|
|
position: absolute;
|
|
|
bottom: -25px;
|
|
|
left: 50px;
|
|
|
z-index: 2;
|
|
|
}
|
|
|
|
|
|
table tr td ul.top b {
|
|
|
position: absolute;
|
|
|
top: -25px;
|
|
|
left: 50px;
|
|
|
z-index: 2;
|
|
|
}
|
|
|
|
|
|
/*办公区 */
|
|
|
.NO1 .administrative-Area {
|
|
|
height: 100px;
|
|
|
line-height: 100px;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
/*消防栓 */
|
|
|
.fire-hydrant {
|
|
|
width: 80px;
|
|
|
height: 30px;
|
|
|
line-height: 30px;
|
|
|
text-align: center;
|
|
|
text-align: center;
|
|
|
color: red;
|
|
|
font-size: 12px;
|
|
|
font-weight: bold;
|
|
|
position: absolute;
|
|
|
}
|
|
|
|
|
|
.NO-door {
|
|
|
position: relative;
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
|
|
|
.NO1 .NO1-door .fire-hydrant {
|
|
|
top: -35px;
|
|
|
left: -10px;
|
|
|
}
|
|
|
|
|
|
.NO1 .NO2-door .fire-hydrant {
|
|
|
top: -35px;
|
|
|
left: -52px;
|
|
|
}
|
|
|
|
|
|
.NO1 .NO3-door .fire-hydrant {
|
|
|
top: -35px;
|
|
|
left: 54px;
|
|
|
}
|
|
|
|
|
|
.NO1 .NO4-door .fire-hydrant {
|
|
|
top: -35px;
|
|
|
left: 5px;
|
|
|
}
|
|
|
|
|
|
/*道路空隙 */
|
|
|
.open-space {
|
|
|
height: 50px;
|
|
|
background: #f8f8f9;
|
|
|
position: relative;
|
|
|
}
|
|
|
|
|
|
/*门框 */
|
|
|
.NO1 .door-frame {
|
|
|
width: 1164px;
|
|
|
}
|
|
|
|
|
|
.NO2 .door-frame {
|
|
|
width: 1034px;
|
|
|
}
|
|
|
|
|
|
.NO3 .door-frame {
|
|
|
width: 2064px;
|
|
|
}
|
|
|
|
|
|
.door-frame {
|
|
|
background: url(../../../src/assets/imgs/door_back.png) repeat-x center;
|
|
|
}
|
|
|
|
|
|
/*几号门 */
|
|
|
.NO-door {
|
|
|
width: 80px;
|
|
|
height: 21px;
|
|
|
line-height: 25px;
|
|
|
text-align: center;
|
|
|
font-weight: bold;
|
|
|
background: #FFF;
|
|
|
}
|
|
|
|
|
|
/*控制室 */
|
|
|
.control-room {
|
|
|
width: 80px;
|
|
|
height: 78px;
|
|
|
line-height: 78px;
|
|
|
text-align: center;
|
|
|
margin-top: 547px;
|
|
|
}
|
|
|
|
|
|
/*竖墙 */
|
|
|
.vertical-door-frame {
|
|
|
width: 30px;
|
|
|
margin: 0 10px;
|
|
|
background: url(../../../src/assets/imgs/vertical_door_back.png) repeat-y;
|
|
|
}
|
|
|
|
|
|
.vertical-door-frame div {
|
|
|
width: 18px;
|
|
|
position: absolute;
|
|
|
background: #FFF;
|
|
|
padding: 7px 0;
|
|
|
text-align: center;
|
|
|
font-weight: bold;
|
|
|
font-size: 14px;
|
|
|
line-height: 16px;
|
|
|
}
|
|
|
|
|
|
.vertical-door-frame .NO1-door {
|
|
|
top: 128px;
|
|
|
}
|
|
|
|
|
|
.vertical-door-frame .NO2-door {
|
|
|
top: 512px;
|
|
|
}
|
|
|
|
|
|
.vertical-door-frame .NO3-door {
|
|
|
top: 565px;
|
|
|
}
|
|
|
|
|
|
/*库3 */
|
|
|
.NO3 {
|
|
|
margin-bottom: 30px;
|
|
|
}
|
|
|
|
|
|
.NO3 table tr td ul {
|
|
|
height: 60px;
|
|
|
}
|
|
|
|
|
|
.NO3 table tr td ul.right b {
|
|
|
position: absolute;
|
|
|
top: 40px;
|
|
|
right: -40px;
|
|
|
z-index: 2;
|
|
|
}
|
|
|
|
|
|
.NO3 table tr td ul.left b {
|
|
|
position: absolute;
|
|
|
top: 16px;
|
|
|
left: -40px;
|
|
|
}
|
|
|
|
|
|
.NO3 table tr td ul.bottom b {
|
|
|
position: absolute;
|
|
|
bottom: -25px;
|
|
|
left: 50px;
|
|
|
z-index: 2;
|
|
|
}
|
|
|
|
|
|
.NO3 table tr td ul.top b {
|
|
|
position: absolute;
|
|
|
top: -25px;
|
|
|
left: 50px;
|
|
|
z-index: 2;
|
|
|
}
|
|
|
|
|
|
/*所有库空隙 */
|
|
|
.NO-space div {
|
|
|
width: 80px;
|
|
|
}
|
|
|
|
|
|
.NO3 .ladder {
|
|
|
height: 60px;
|
|
|
margin-bottom: 2px;
|
|
|
}
|
|
|
|
|
|
/*新加样式 */
|
|
|
.NO01 {
|
|
|
width: 95%;
|
|
|
margin: 15px auto;
|
|
|
padding: 10px;
|
|
|
overflow-x: hidden;
|
|
|
overflow-x: scroll;
|
|
|
}
|
|
|
|
|
|
.NO01 table tbody tr td ul,
|
|
|
.NO02 table tbody tr td ul,
|
|
|
.NO03 table tbody tr td ul,
|
|
|
.NO05 table tbody tr td ul,
|
|
|
.NO06 table tbody tr td ul,
|
|
|
.NO01-west table tbody tr td ul,
|
|
|
.NO02-c table tbody tr td ul {
|
|
|
height: 160px;
|
|
|
position: relative;
|
|
|
}
|
|
|
|
|
|
.NO01 table tbody tr td ul:nth-child(3n) b,
|
|
|
.NO02 table tbody tr td ul:nth-child(3n) b,
|
|
|
.NO03 table tbody tr td ul:nth-child(3n) b,
|
|
|
.NO05 table tbody tr td ul:nth-child(3n) b,
|
|
|
.NO06 table tbody tr td ul:nth-child(3n) b,
|
|
|
.NO01-west table tbody tr td ul:nth-child(3n) b {
|
|
|
position: absolute;
|
|
|
bottom: 0;
|
|
|
}
|
|
|
|
|
|
.NO-space .south,
|
|
|
.NO-space .north {
|
|
|
height: 165px;
|
|
|
font-size: 18px;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
/*裕龙盛捷方向 */
|
|
|
.ShengJie .NO-space .south,
|
|
|
.ShengJie .NO-space .north {
|
|
|
height: 300px;
|
|
|
font-size: 18px;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
.ShengJie .NO-space .south {
|
|
|
padding-top: 110px;
|
|
|
}
|
|
|
|
|
|
.ShengJie .NO-space .north {
|
|
|
padding-top: 185px;
|
|
|
}
|
|
|
|
|
|
.ShengJie .NO-space .NO01-door {
|
|
|
padding-top: 60px;
|
|
|
}
|
|
|
|
|
|
.NO-space .south span,
|
|
|
.NO-space .north span {
|
|
|
display: block;
|
|
|
font-size: 30px;
|
|
|
}
|
|
|
|
|
|
.NO-space .south {
|
|
|
padding-top: 15px;
|
|
|
}
|
|
|
|
|
|
.NO-space .north {
|
|
|
padding-top: 50px;
|
|
|
}
|
|
|
|
|
|
.NO-space .north span {
|
|
|
margin-bottom: 10px;
|
|
|
}
|
|
|
|
|
|
.NO01-door {
|
|
|
font-size: 14px;
|
|
|
font-weight: bold;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
.NO02 {
|
|
|
width: 95%;
|
|
|
margin: 15px auto;
|
|
|
padding: 10px;
|
|
|
overflow-x: hidden;
|
|
|
overflow-x: scroll;
|
|
|
}
|
|
|
|
|
|
.NO03 {
|
|
|
width: 95%;
|
|
|
margin: 15px auto;
|
|
|
padding: 10px;
|
|
|
overflow-x: hidden;
|
|
|
overflow-x: scroll;
|
|
|
}
|
|
|
|
|
|
.NO05 {
|
|
|
width: 95%;
|
|
|
margin: 15px auto;
|
|
|
padding: 10px;
|
|
|
overflow-x: hidden;
|
|
|
overflow-x: scroll;
|
|
|
}
|
|
|
|
|
|
.NO06 {
|
|
|
width: 95%;
|
|
|
margin: 15px auto;
|
|
|
padding: 10px;
|
|
|
overflow-x: hidden;
|
|
|
overflow-x: scroll;
|
|
|
}
|
|
|
|
|
|
/*一号库西区 */
|
|
|
.NO01-west,
|
|
|
.NO02-c {
|
|
|
width: 95%;
|
|
|
margin: 15px auto;
|
|
|
padding: 10px;
|
|
|
overflow-x: hidden;
|
|
|
overflow-x: scroll;
|
|
|
}
|
|
|
|
|
|
.NO01-west .NO-space .south {
|
|
|
padding-top: 60px;
|
|
|
}
|
|
|
|
|
|
.NO01-west .NO-space .north {
|
|
|
padding-top: 90px;
|
|
|
}
|
|
|
|
|
|
.warehouse-map {
|
|
|
width: 1260px;
|
|
|
height: 600px;
|
|
|
position: relative;
|
|
|
border: 1px solid #ebebeb;
|
|
|
}
|
|
|
|
|
|
.warehouse-map .ware-01 {
|
|
|
width: 645px;
|
|
|
height: 110px;
|
|
|
line-height: 110px;
|
|
|
text-align: center;
|
|
|
background: #bed6f8;
|
|
|
border: 1px dashed #6391c0;
|
|
|
font-size: 18px;
|
|
|
color: #6391c0;
|
|
|
position: absolute;
|
|
|
top: 50px;
|
|
|
left: 50px;
|
|
|
}
|
|
|
|
|
|
.warehouse-map .ware-02 {
|
|
|
width: 435px;
|
|
|
height: 110px;
|
|
|
line-height: 110px;
|
|
|
text-align: center;
|
|
|
background: #bed6f8;
|
|
|
border: 1px dashed #6391c0;
|
|
|
font-size: 18px;
|
|
|
color: #6391c0;
|
|
|
position: absolute;
|
|
|
top: 385px;
|
|
|
left: 50px;
|
|
|
}
|
|
|
|
|
|
.warehouse-map .CP-01 {
|
|
|
width: 145px;
|
|
|
height: 145px;
|
|
|
line-height: 145px;
|
|
|
text-align: center;
|
|
|
background: #fff4bc;
|
|
|
border: 1px dashed #e3be64;
|
|
|
font-size: 18px;
|
|
|
color: #d3990b;
|
|
|
position: absolute;
|
|
|
top: 50px;
|
|
|
left: 745px;
|
|
|
}
|
|
|
|
|
|
.warehouse-map .SW-01 {
|
|
|
width: 290px;
|
|
|
height: 240px;
|
|
|
line-height: 240px;
|
|
|
text-align: center;
|
|
|
background: #fbcbb4;
|
|
|
border: 1px dashed #b45c50;
|
|
|
font-size: 18px;
|
|
|
color: #b45c50;
|
|
|
position: absolute;
|
|
|
top: 25px;
|
|
|
left: 920px;
|
|
|
}
|
|
|
|
|
|
.warehouse-map .SW-02 {
|
|
|
width: 435px;
|
|
|
height: 60px;
|
|
|
line-height: 60px;
|
|
|
text-align: center;
|
|
|
background: #fbcbb4;
|
|
|
border: 1px dashed #b45c50;
|
|
|
font-size: 18px;
|
|
|
color: #b45c50;
|
|
|
position: absolute;
|
|
|
top: 190px;
|
|
|
left: 260px;
|
|
|
}
|
|
|
|
|
|
.warehouse-map .SW-03 {
|
|
|
width: 765px;
|
|
|
height: 60px;
|
|
|
line-height: 60px;
|
|
|
text-align: center;
|
|
|
background: #fbcbb4;
|
|
|
border: 1px dashed #b45c50;
|
|
|
font-size: 18px;
|
|
|
color: #b45c50;
|
|
|
position: absolute;
|
|
|
top: 296px;
|
|
|
left: 446px;
|
|
|
}
|
|
|
|
|
|
.warehouse-map .dire {
|
|
|
position: absolute;
|
|
|
top: 410px;
|
|
|
right: 100px;
|
|
|
}
|
|
|
|
|
|
/*原有库位图样式 */
|
|
|
.red {
|
|
|
background: #ffebec;
|
|
|
border: 1px solid rgba(239, 22, 18, .15);
|
|
|
}
|
|
|
|
|
|
.green {
|
|
|
background: #e8f6e9;
|
|
|
border: 1px solid rgba(39, 116, 30, .15);
|
|
|
}
|
|
|
|
|
|
.s-red {
|
|
|
background: #fdc1c4;
|
|
|
border: 1px solid rgba(239, 22, 18, .15);
|
|
|
}
|
|
|
|
|
|
.warehouse {
|
|
|
margin: 20px auto 15px;
|
|
|
display: none;
|
|
|
}
|
|
|
|
|
|
.warehouse tr {
|
|
|
padding-bottom: 30px;
|
|
|
}
|
|
|
|
|
|
.warehouse tr td {
|
|
|
width: 360px;
|
|
|
height: 100px !important;
|
|
|
border-right: 30px solid #f8f8f9;
|
|
|
border-bottom: 30px solid #f8f8f9;
|
|
|
margin-right: 5%;
|
|
|
position: relative;
|
|
|
}
|
|
|
|
|
|
.warehouse tr td:nth-child(3n) {
|
|
|
border-right: none;
|
|
|
}
|
|
|
|
|
|
.warehouse tr td:nth-child(3n) .aisle2 {
|
|
|
display: none;
|
|
|
}
|
|
|
|
|
|
.warehouse tr td ul {
|
|
|
height: 135px;
|
|
|
padding: 7px 0 10px 15px;
|
|
|
box-shadow: -1px -1px 5px 1px #ebebeb;
|
|
|
/*border: 1px solid rgba(51,118,255,.15);*/
|
|
|
border-radius: 5px;
|
|
|
overflow: hidden;
|
|
|
overflow-y: auto;
|
|
|
}
|
|
|
|
|
|
.warehouse tr td ul b {
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
|
|
|
.warehouse tr td li {
|
|
|
list-style: none;
|
|
|
line-height: 21px;
|
|
|
color: #666;
|
|
|
}
|
|
|
|
|
|
.warehouse tr td li.aisle1 {
|
|
|
width: 317px;
|
|
|
height: 30px;
|
|
|
line-height: 30px;
|
|
|
text-align: center;
|
|
|
position: absolute;
|
|
|
top: -30px;
|
|
|
left: 0px;
|
|
|
color: #cbcbcb;
|
|
|
font-size: 8px;
|
|
|
}
|
|
|
|
|
|
.warehouse tr td li.aisle2 {
|
|
|
width: 20px;
|
|
|
height: 130px;
|
|
|
text-align: center;
|
|
|
position: absolute;
|
|
|
top: 34px;
|
|
|
right: -25px;
|
|
|
color: #cbcbcb;
|
|
|
font-size: 8px;
|
|
|
}
|
|
|
</style>
|
|
|
</head>
|
|
|
|
|
|
<body>"+ htmlstr + @"</body>
|
|
|
</html>";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 其他
|
|
|
|
|
|
public JsonResult Regist(UserRegistViewModel model)
|
|
|
{
|
|
|
RespCommon resp = new RespCommon();
|
|
|
if (!string.IsNullOrWhiteSpace(model.OpenId))
|
|
|
{
|
|
|
var driver = dataContext.UserRegist.FirstOrDefault(d => d.OpenId == model.OpenId);
|
|
|
if (driver == null)
|
|
|
{
|
|
|
driver = model.AsDriverInfo();
|
|
|
dataContext.UserRegist.Add(driver);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
model.AsDriverInfo(driver);
|
|
|
}
|
|
|
|
|
|
dataContext.SaveChanges();
|
|
|
resp.Success = true;
|
|
|
resp.Message = "操作成功";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
resp.Success = false;
|
|
|
resp.Message = "参数无效";
|
|
|
}
|
|
|
|
|
|
return Json(resp);
|
|
|
}
|
|
|
|
|
|
public ActionResult AuthRedirect(string code, string state)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
BasicDataRefDAL.SaveLog($"code={code},state={state}", "微信公众号", "裕龙公众号", "调用AuthRedirect");
|
|
|
var url = $"https://api.weixin.qq.com/sns/oauth2/access_token?appid={appid}&secret={appsecret}&code={code}&grant_type=authorization_code";
|
|
|
string rtnStr = WebRequestHelper.DoGet(url);
|
|
|
BasicDataRefDAL.SaveLog(rtnStr, "微信公众号", "裕龙公众号", "gettoken");
|
|
|
var obj = new { access_token = "", expires_in = 0, refresh_token = "", openid = "", scope = "" };
|
|
|
var jsonObj = JsonConvert.DeserializeAnonymousType(rtnStr, obj);
|
|
|
|
|
|
if (state == StateKeyRegistCustHJ)
|
|
|
{
|
|
|
return Redirect($"{dispatchServerUrl}/Dispatch/Stock/Regist?openid={jsonObj.openid}");
|
|
|
}
|
|
|
else if (state == StateKeyStorageList)
|
|
|
{
|
|
|
var redirecturl = $"{storageServerUrl}/Storage/Storage/StorageList?openid={jsonObj.openid}";
|
|
|
BasicDataRefDAL.SaveLog(redirecturl, "微信公众号", "裕龙公众号", "storagelist");
|
|
|
|
|
|
return Redirect(redirecturl);
|
|
|
}
|
|
|
else if (state == StateKeyKucunList)
|
|
|
{
|
|
|
var redirecturl = $"{storageServerUrl}/Storage/Storage/KucunList?openid={jsonObj.openid}";
|
|
|
BasicDataRefDAL.SaveLog(redirecturl, "微信公众号", "裕龙公众号", "kucunlist");
|
|
|
return Redirect(redirecturl);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return Content($"非法请求");
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
return Content($"出错啦:{ex.Message}");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public ActionResult CreateMenu()
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string token = string.Empty;
|
|
|
string errorMsg = string.Empty;
|
|
|
bool success = TokenHelper.GetMpToken(appid, out token, out errorMsg);
|
|
|
if (success)
|
|
|
{
|
|
|
var url = $"https://api.weixin.qq.com/cgi-bin/menu/create?access_token={token}";
|
|
|
string regRtnUrl = HttpUtility.UrlEncode($"{dispatchServerUrl}/dispatch/dispatch/AuthRedirect");
|
|
|
string regUrl = $"https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={regRtnUrl}&response_type=code&scope=snsapi_base&state={StateKeyRegist}#wechat_redirect";
|
|
|
//string listUrl = $"https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={regRtnUrl}&response_type=code&scope=snsapi_base&state={StateKeyDispatchList}#wechat_redirect";
|
|
|
//string listUrlGrab = $"https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={regRtnUrl}&response_type=code&scope=snsapi_base&state={StateKeyGrabList}#wechat_redirect";
|
|
|
//string feeUrl = $"https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={regRtnUrl}&response_type=code&scope=snsapi_base&state={StateKeyFeeList}#wechat_redirect";
|
|
|
|
|
|
string regUrlCust = $"https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={regRtnUrl}&response_type=code&scope=snsapi_base&state={StateKeyRegistCust}#wechat_redirect";
|
|
|
string opseaeUrl = $"https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={regRtnUrl}&response_type=code&scope=snsapi_base&state={StateKeyStorageList}#wechat_redirect";
|
|
|
|
|
|
var menuJson = new
|
|
|
{
|
|
|
button = new object[]
|
|
|
{
|
|
|
new
|
|
|
{
|
|
|
type="view",
|
|
|
name ="客户注册",
|
|
|
url =regUrlCust
|
|
|
},
|
|
|
new
|
|
|
{
|
|
|
type="view",
|
|
|
name="查询",
|
|
|
url =opseaeUrl
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
string jsonStr = JsonConvert.SerializeObject(menuJson);
|
|
|
string rtnStr = WebRequestHelper.DoPost(url, jsonStr);
|
|
|
|
|
|
return Content(rtnStr);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return Content($"获取token时出错:{errorMsg}");
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
return Content($"error:{ex.Message}");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public ActionResult SendTemplateTest(string openid = "oHgaQ5no1pqAXeRZK3WcV2UzjHY4")
|
|
|
{
|
|
|
List<Tuple<string, string, string>> values = new List<Tuple<string, string, string>>();
|
|
|
values.Add(new Tuple<string, string, string>("TITLE", "收到新的库存消息,点击查看:", "#FF0000"));
|
|
|
values.Add(new Tuple<string, string, string>("XX", "OTG01256", ""));
|
|
|
values.Add(new Tuple<string, string, string>("DW", "1568KG", ""));
|
|
|
values.Add(new Tuple<string, string, string>("ZHSJ", DateTime.Today.ToString("yyyy-MM-dd"), ""));
|
|
|
values.Add(new Tuple<string, string, string>("JGSJ", DateTime.Today.AddDays(5).ToString("yyyy-MM-dd"), ""));
|
|
|
values.Add(new Tuple<string, string, string>("GCDZ", "市南区湛山街道", ""));
|
|
|
values.Add(new Tuple<string, string, string>("FOOTTER", "赶快点击去抢单吧~", "#0000FF"));
|
|
|
|
|
|
string mess = string.Empty;
|
|
|
bool success = TemplateMessageHelper.SendTemplateMessage(appid, "5zWCiYhS44naUs1dolJuMtAhzqvrfpdHUK6JQJdtkLw", values, openid, $"{dispatchServerUrl}/Dispatch/Dispatch/DispatchDetail?leid=123", out mess);
|
|
|
return Content($"{success} {mess}");
|
|
|
}
|
|
|
|
|
|
private repobj getOpenId(string code)
|
|
|
{
|
|
|
var appid = ConfigurationManager.AppSettings["appid"];
|
|
|
var appsecret = ConfigurationManager.AppSettings["secret"];
|
|
|
var url = $"https://api.weixin.qq.com/sns/jscode2session?appid={appid}&secret={appsecret}&js_code={code}&grant_type=authorization_code";
|
|
|
//log.Debug("获取openid:" + url);
|
|
|
string resp = WebRequestHelper.DoGet(url);
|
|
|
repobj result = JsonConvert.DeserializeAnonymousType(resp, new repobj { openid = "", errcode = 0 });
|
|
|
//log.Debug("返回:" + resp);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
} |