You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/DSWeb/Dispatch/Controllers/WxAppController.cs

1407 lines
56 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Common.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Configuration;
using DSWeb.Areas.Dispatch.Helper;
using Newtonsoft.Json;
using System.Runtime.Caching;
using System.Text;
using System.IO;
using DSWeb.Areas.Dispatch.DB;
using DSWeb.Areas.Dispatch.DB_Wx;
using DSWeb.Areas.CommMng.DAL;
using HcUtility.Comm;
namespace DSWeb.Areas.Dispatch.Controllers
{
public class repobj {
public string openid { get; set; }
public int errcode { get; set; }
}
public class LoginInfo {
public string codename { get; set; }
public string password { get; set; }
public string AuthCode { get; set; }
}
//微信小程序专用接口控制器
public class WxAppController : Controller
{
private ILog log = LogManager.GetLogger("WxAppController");
private WxAppDataContext dbc = new WxAppDataContext();
private string filepath = ConfigurationManager.AppSettings["DSWMSFilePath"];
/// <summary>
///
/// </summary>
private repobj getOpenId(string code) {
var appid = ConfigurationManager.AppSettings["WechatAppId"];
var appsecret = ConfigurationManager.AppSettings["WechatAppSecret"];
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;
}
public String getDataStr(DateTime? dt) {
return dt == null ? "" : ((DateTime)dt).ToString("yyyy-MM-dd");
}
public String getDataLongStr(DateTime? dt)
{
return dt == null ? "" : ((DateTime)dt).ToString("yyyy-MM-dd HH:mm:ss");
}
//#region 裕龙集团用小程序
//校验用户是否存在,并获取用户信息
[HttpGet]
public ActionResult GetUserInfo(string code)
{
try
{
var obj = getOpenId(code);
//BasicDataRefDAL.SaveLog("获得openid", obj.openid, "wxapp", "获取用户信息");
var userWx = dbc.Users.FirstOrDefault(x => x.OPENID == obj.openid);
if (userWx != null)
{
var userinfo = dbc.vw_user.First(x => x.USERID == userWx.GID);
//BasicDataRefDAL.SaveLog("", "", "wxapp", "获取用户信息1");
return Json(new
{
ErrorCode = 0,
Message = "获取成功",
BaseInfo = new { userinfo.SHOWNAME, userWx.CODENAME, userinfo.companyname, userWx.OPENID, userinfo.Role_Id , userinfo.COMPANYID, userinfo.USERID }
},
JsonRequestBehavior.AllowGet);
}
else
{
//BasicDataRefDAL.SaveLog("", "", "wxapp", "获取用户信息2");
return Json(new { ErrorCode = -1, Message = "用户不存在" }, JsonRequestBehavior.AllowGet);
}
//BasicDataRefDAL.SaveLog("", "", "wxapp", "获取用户信息3");
return Json(new { ErrorCode = 500, Message = "发生错误" }, JsonRequestBehavior.AllowGet);
}
catch (Exception e) {
//log.Debug("获取信息错误" + e.Message);
//BasicDataRefDAL.SaveLog("错误", e.Message, "wxapp", "获取用户信息");
return Json(new { ErrorCode = 500, Message = e.Message }, JsonRequestBehavior.AllowGet);
}
}
/// <summary>
/// 用户登陆 使用系统用户名和密码登陆
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
[HttpPost]
public ActionResult FirstLogin(LoginInfo logininfo)
{
var obj = getOpenId(logininfo.AuthCode);
BasicDataRefDAL.SaveLog("获得openid", obj.openid, "wxapp", "登录");
try
{
if (obj.errcode == 0)
{
BasicDataRefDAL.SaveLog("", obj.openid, "wxapp", "登录1");
var userWxList = dbc.Users.Where(x => x.OPENID == obj.openid).ToList();
if (userWxList.Count > 0)
{
//将所有使用这个openid的user数据的openid置为 然后继续正常操作
foreach (var item in userWxList)
{
item.OPENID = "";
}
}
BasicDataRefDAL.SaveLog($"codename[{logininfo.codename}],password[{logininfo.password}]", obj.openid, "wxapp", "登录2");
//将正确的用户名和密码的那条user数据 的openid修改为传入的
var userWx = dbc.Users.FirstOrDefault(x => x.CODENAME.ToUpper() == logininfo.codename.ToUpper() && x.PASSWORD == logininfo.password);
if (userWx != null)
{
userWx.OPENID = obj.openid;
dbc.SaveChanges();
}
else {
BasicDataRefDAL.SaveLog("用户名、密码错误", obj.openid, "wxapp", "登录2.1");
}
var userinfo = dbc.vw_user.First(x => x.USERID == userWx.GID);
BasicDataRefDAL.SaveLog("", obj.openid, "wxapp", "登录3");
return Json(new
{
ErrorCode = 0,
Message = "获取成功",
BaseInfo = new { userinfo.SHOWNAME, userWx.CODENAME, userinfo.companyname, userWx.OPENID }
},
JsonRequestBehavior.AllowGet);
}
}
catch (Exception e) {
log.Debug("wxapp登陆错误" + e.Message);
}
BasicDataRefDAL.SaveLog("", obj.openid, "wxapp", "登录f");
return Json(new { ErrorCode = 500, Message = "发生错误" }, JsonRequestBehavior.AllowGet);
}
/// <summary>
/// 获取进行中的入库执行单
/// </summary>
/// <param name="logininfo"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetINDOList(string CODENAME)
{
try
{
var userinfo = dbc.vw_user.First(x => x.CODENAME == CODENAME);
var limit = dbc.Sys_Role_Core.First(x => x.Role_Id == userinfo.Role_Id).LimitCompanyRange;
var indoList = new List<VW_OP_WMS_IN_DO>();
//寻找 本公司的“入库执行 1001”的入库执行单列表
if (limit)
{
indoList = dbc.VW_OP_WMS_IN_DO.Where(x => x.CORPID == userinfo.COMPANYID && x.BILLSTATUS == "1001" && (x.CUSTOMERNAME!=null && x.CUSTOMERNAME != "")).ToList();
}
else {
indoList = dbc.VW_OP_WMS_IN_DO.Where(x => x.BILLSTATUS == "1001" && (x.CUSTOMERNAME != null && x.CUSTOMERNAME != "")).ToList();
}
indoList.Sort((x, y) => 4 * x.CUSTOMERNAME.CompareTo(y.CUSTOMERNAME)+2*x.MBLNO.CompareTo(y.MBLNO));
return Json(new { ErrorCode = 0, data = indoList }, JsonRequestBehavior.AllowGet);
}
catch (Exception e) {
return Json(new { ErrorCode = 500, Message = "发生错误:"+e.Message }, JsonRequestBehavior.AllowGet);
}
}
/// <summary>
/// 获取入库执行明细
/// </summary>
/// <param name="logininfo"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetINDODetailList(string WMSDOID)
{
try
{
//var userinfo = dbc.vw_user.First(x => x.CODENAME == CODENAME);
//寻找 本公司的“入库执行 1001”的入库执行单列表
var indoList = dbc.VW_OP_WMS_IN_DO_GOODS.Where(x => x.WMSDOID == new Guid(WMSDOID)).ToList();
return Json(new { ErrorCode = 0, data = indoList }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(new { ErrorCode = 500, Message = "发生错误:" + e.Message }, JsonRequestBehavior.AllowGet);
}
}
/// <summary>
/// 获取进行中的出库作业单列表
/// </summary>
/// <param name="logininfo"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetOUTDOList(string CODENAME)
{
try
{
var userinfo = dbc.vw_user.First(x => x.CODENAME == CODENAME);
//寻找 本公司的“出库执行 1010”的出库作业单列表
var outdoList = dbc.VW_OP_WMS_OUT_DO.Where(x => x.CORPID == userinfo.COMPANYID && (x.BILLSTATUS == "1010")).ToList();
var resultdata = outdoList.Select(x => new
{
WMSDOID = x.WMSDOID,
WMSNO = x.WMSNO,
MBLNO = x.MBLNO==null?"": x.MBLNO,
CORPID = x.CORPID,
CUSTOMERNAME = x.CUSTOMERNAME,
DODATE = getDataStr(x.DODATE),
REMARK = x.REMARK,
TRUCKNO = x.TRUCKNO,
CNTRNO = x.CNTRNO,
}).ToList();
resultdata.Sort((x, y) => 8 * x.DODATE.CompareTo(y.DODATE) + 4 * x.CUSTOMERNAME.CompareTo(y.CUSTOMERNAME) + 2 * x.MBLNO.CompareTo(y.MBLNO) );
return Json(new { ErrorCode = 0, data = resultdata }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(new { ErrorCode = 500, Message = "发生错误:" + e.Message }, JsonRequestBehavior.AllowGet);
}
}
/// <summary>
/// 获取用指定gid和指定箱号共同关联的电子文档
///
/// </summary>
/// <param name="logininfo"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetInfoFileList(string PID,string CNTRNO)
{
try
{
var indoList = dbc.VW_INFO_FILES.Where(x => x.PID == new Guid(PID) && x.CNTRNO== CNTRNO).ToList();
var fileList = indoList.Select(x =>
new
{
GID = x.GID,
CNTRNO = x.CNTRNO,
IMAGES = x.IMGPATH.Split(',').ToList(),
ModifyDate = getDataLongStr(x.ModifyDate)
}).ToList();
var resultlist = new List<INFO_FILES_TEMP>();
foreach (var infofile in fileList) {
var newlist = new List<IMG>();
foreach (var imgpath in infofile.IMAGES) {
//var _newpath = "/DSWMSPIC/" + imgpath;
var _newpath = new IMG();
_newpath.IMGPATH = imgpath;
newlist.Add(_newpath);
}
var newresultfile = new INFO_FILES_TEMP();
newresultfile.GID = infofile.GID;
newresultfile.CNTRNO = infofile.CNTRNO;
newresultfile.IMGPATHLIST = newlist;
newresultfile.ModifyDate = infofile.ModifyDate;
resultlist.Add(newresultfile);
}
fileList.Sort((x, y) => -x.ModifyDate.CompareTo(y.ModifyDate));
return Json(new { ErrorCode = 0, data = resultlist }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(new { ErrorCode = 500, Message = "发生错误:" + e.Message }, JsonRequestBehavior.AllowGet);
}
}
/// <summary>
/// 获取全部电子文档
/// </summary>
/// <param name="logininfo"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetInfoFileList_ALL(string ROLE_ID,string COMPANYID,string MBLNO, string CNTRNO)
{
try
{
if (string.IsNullOrWhiteSpace(MBLNO) && string.IsNullOrWhiteSpace(CNTRNO)) {
return Json(new { ErrorCode = 500, Message = "发生错误:提单号和箱号至少要填写一个" }, JsonRequestBehavior.AllowGet);
}
if(!string.IsNullOrWhiteSpace(MBLNO) && MBLNO.Length<3)
return Json(new { ErrorCode = 500, Message = "发生错误:提单号至少要填三位" }, JsonRequestBehavior.AllowGet);
if (!string.IsNullOrWhiteSpace(CNTRNO) && CNTRNO.Length < 3)
return Json(new { ErrorCode = 500, Message = "发生错误:箱号至少要填三位" }, JsonRequestBehavior.AllowGet);
var limit = dbc.Sys_Role_Core.First(x => x.Role_Id == ROLE_ID).LimitCompanyRange;
var indoList = new List<VW_INFO_FILES>();
if (limit)
{
//var companyuserid = dbc.vw_user.Where(x => x.COMPANYID == COMPANYID).Select(s => new Guid(s.USERID)).ToList();
indoList = dbc.VW_INFO_FILES.Where(x => x.CORPID == COMPANYID).ToList();
if (!string.IsNullOrWhiteSpace(MBLNO)) {
indoList= indoList.Where(x => x.MBLNO.Contains(MBLNO)).ToList();
}
if (!string.IsNullOrWhiteSpace(CNTRNO))
{
indoList=indoList.Where(x => x.CNTRNO.Contains(CNTRNO)).ToList();
}
}
else {
if (!string.IsNullOrWhiteSpace(MBLNO))
{
indoList = dbc.VW_INFO_FILES.Where(x => x.MBLNO.Contains( MBLNO)).ToList();
if (!string.IsNullOrWhiteSpace(CNTRNO))
{
indoList= indoList.Where(x => x.CNTRNO.Contains(CNTRNO)).ToList();
}
}
else
if (!string.IsNullOrWhiteSpace(CNTRNO))
{
indoList = dbc.VW_INFO_FILES.Where(x => x.CNTRNO.Contains(CNTRNO)).ToList();
}
//indoList = dbc.VW_INFO_FILES.Where(x => (x.MBLNO.Contains(MBLNO) )).ToList();
}
indoList = indoList.Where(x => x.IMGPATH != null && x.IMGPATH != "").ToList();
var fileList = indoList.Select(x =>
new
{
GID = x.GID,
PWORKTYPE = x.PWORKTYPE,
MBLNO = x.MBLNO,
CNTRNO = x.CNTRNO,
Modifier = x.Modifier,
ModifyDate = getDataLongStr(x.ModifyDate),
IMAGES = x.IMGPATH.Split(',').ToList()
}).ToList();
var resultlist = new List<INFO_FILES_TEMP2>();
foreach (var infofile in fileList)
{
var newlist = new List<IMG>();
foreach (var imgpath in infofile.IMAGES)
{
//var _newpath = "/DSWMSPIC/" + imgpath;
var _newpath = new IMG();
_newpath.IMGPATH = imgpath;
newlist.Add(_newpath);
}
var newresultfile = new INFO_FILES_TEMP2();
newresultfile.GID = infofile.GID;
newresultfile.CNTRNO = infofile.CNTRNO == null ? "" : infofile.CNTRNO;
newresultfile.MBLNO = infofile.MBLNO==null?"": infofile.MBLNO;
newresultfile.PWORKTYPE = infofile.PWORKTYPE;
newresultfile.IMGPATHLIST = newlist;
newresultfile.ModifyDate = infofile.ModifyDate;
resultlist.Add(newresultfile);
}
resultlist.Sort((x, y) => 4 * x.MBLNO.CompareTo(y.MBLNO) + 2 * x.CNTRNO.CompareTo(y.CNTRNO) + x.ModifyDate.CompareTo(y.ModifyDate));
return Json(new { ErrorCode = 0, data = resultlist }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(new { ErrorCode = 500, Message = "发生错误:" + e.Message }, JsonRequestBehavior.AllowGet);
}
}
/// <summary>
/// 获取货物库位信息
/// </summary>
/// <param name="logininfo"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetAREAGOODS(string ROLE_ID, string COMPANYID, string MBLNO, string CNTRNO)
{
try
{
if (string.IsNullOrWhiteSpace(MBLNO) && string.IsNullOrWhiteSpace(CNTRNO))
{
return Json(new { ErrorCode = 500, Message = "发生错误:提单号和箱号至少要填写一个" }, JsonRequestBehavior.AllowGet);
}
if (!string.IsNullOrWhiteSpace(MBLNO) && MBLNO.Length < 3)
return Json(new { ErrorCode = 500, Message = "发生错误:提单号至少要填三位" }, JsonRequestBehavior.AllowGet);
if (!string.IsNullOrWhiteSpace(CNTRNO) && CNTRNO.Length < 3)
return Json(new { ErrorCode = 500, Message = "发生错误:箱号至少要填三位" }, JsonRequestBehavior.AllowGet);
var limit = dbc.Sys_Role_Core.First(x => x.Role_Id == ROLE_ID).LimitCompanyRange;
var resultList = new List<VW_OP_WMS_AREAGOODS>();
if (!string.IsNullOrWhiteSpace(MBLNO))
{
resultList = dbc.VW_OP_WMS_AREAGOODS.Where(x => x.MBLNO.Contains(MBLNO)).ToList();
if (!string.IsNullOrWhiteSpace(CNTRNO)) {
resultList = resultList.Where(x => x.CNTRNO.Contains(CNTRNO)).ToList();
}
}
else {
resultList = dbc.VW_OP_WMS_AREAGOODS.Where(x => (x.CNTRNO.Contains(CNTRNO))).ToList();
}
if (limit)
{
resultList = resultList.Where(x => x.CORPID==COMPANYID).ToList();
}
else
{
}
if(resultList!=null)
resultList.Sort((x, y) => 4 * x.MBLNO.CompareTo(y.MBLNO) + 2 * x.CNTRNO.CompareTo(y.CNTRNO) + x.AREANAME.CompareTo(y.AREANAME));
return Json(new { ErrorCode = 0, data = resultList }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(new { ErrorCode = 500, Message = "发生错误:" + e.Message }, JsonRequestBehavior.AllowGet);
}
}
//#endregion
[HttpPost]
public ActionResult UploadFile()
{
try
{
if (Request.Files.Count > 0)
{
var pid = Request.Form["pid"].ToString().Trim();
var mblno = Request.Form["mblno"].ToString().Trim();
var cntrno = Request.Form["cntrno"].ToString().Trim();
var codename = Request.Form["codename"].ToString().Trim();
var pworktype = Request.Form["pworktype"].ToString().Trim();
var userinfo = dbc.vw_user.First(x => x.CODENAME == codename);
var dayfilepath = DateTime.Today.ToString("yyyyMMdd");
var InfoFilesPath = "Upload/Tables/VW_INFO_FILES/" + dayfilepath;//保存到数据库info_files表的路径
string upDir = Path.Combine(ConfigurationManager.AppSettings["DSWMSPICPATH"], InfoFilesPath);
if (!Directory.Exists(upDir))
{
Directory.CreateDirectory(upDir);
}
//H:\DSWMS\Vue.Net\VOL.WebApi\wwwroot\Upload/Tables/VW_INFO_FILES/202012100909412467/1.jpg
//新增一条电子档案info_files
var newInfoFiles = new INFO_FILES(new Guid(pid), pworktype, mblno, cntrno);
newInfoFiles.setuser(userinfo);
for (int c = 0; c < Request.Files.Count; c++)
{
var uploadFile = Request.Files[c];
if (uploadFile.ContentLength == 0)
{
continue;
}
var extension = Path.GetExtension(uploadFile.FileName);
var timename = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "_" + new Random().Next(100, 999) + extension;
var filepath = "\\" + timename;//随机生成文件名
var infofilepath = InfoFilesPath +"/"+ timename;
var savePath = upDir + filepath;
uploadFile.SaveAs(savePath);
if (!string.IsNullOrWhiteSpace(newInfoFiles.IMGPATH))
{
newInfoFiles.IMGPATH += ",";
}
newInfoFiles.IMGPATH += infofilepath;
//InfoFileList.Add(new { id = DateTime.Now.Ticks, url = relativepath + filepath, size = uploadFile.ContentLength });
}
dbc.INFO_FILES.Add(newInfoFiles);
dbc.SaveChanges();
return Json(new { Success = true, Message = "上传成功", Data = JsonConvert.SerializeObject(newInfoFiles) });
}
}
catch (Exception e) {
return Json(new { Success = false, Message = e.Message });
}
return Json(new { Success = false, Message = "没有文件" });
}
/// <summary>
/// 删除电子文档
/// 如果关联的入库执行没有处于1001状态则不允许删除
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult DelInfoFiles(string GID)
{
try
{
//1首先找到这条电子文档
var infofile = dbc.INFO_FILES.FirstOrDefault(x => x.GID == new Guid(GID));
if (infofile == null) return ErrorResult("没有可以删除的文件");
//2判断关联业务的状态 看能否删除
if (infofile.PWORKTYPE == "入库执行") {
var indo = dbc.VW_OP_WMS_IN_DO.FirstOrDefault(x => x.WMSDOID == infofile.PID);
if(indo==null) return ErrorResult("没有可以删除的文件");
if(indo.BILLSTATUS!="1001") return ErrorResult("业务完成,不可删除");
}
//3执行删除
CommMng.DAL.BasicDataRefDAL.ExecSql($"delete from info_files where gid='{GID}'");
}
catch (Exception e)
{
return ErrorResult(e.Message);
}
return ErrorResult("没有可以删除的文件");
}
private ActionResult ErrorResult(string msg) {
return Json(new { Success = false, Message = "msg" });
}
/// <summary>
/// 虎鲸 小程序
/// 获取该用户需要执行的业务
/// </summary>
/// <param name="logininfo"></param>
/// <returns></returns>
//[HttpGet]
/*
public ActionResult GetCTNMNGList(string USERID)
{
try
{
var resultList = new List<OP_YARD_CTNMNG>();
var cdc = new CommonDataContext();
var wx = new WxAppDataContext();
//寻找这个人需要执行的业务内容
//寻找OP_YARD_CTNMNG_WORK当中OP=这个人 且WORKSTATUS为空或为未处理的
//将这些OP_YARD_CTNMNG_WORK的父节点返回
//var _user = cdc.Users.FirstOrDefault(x => x.CODENAME == CODENAME);
var detailList = wx.OP_YARD_CTNMNG_WORK.Where(x => x.OP.ToString().ToUpper() == USERID.ToUpper() && (x.WORKSTATUS==""|| x.WORKSTATUS == null || x.WORKSTATUS=="未处理")).ToList();
if (detailList != null && detailList.Count > 0) {
var bsnoList = detailList.Select(s => s.BSNO).ToList();
var headlist = wx.OP_YARD_CTNMNG.Where(x => bsnoList.Contains(x.GID)).ToList();
if (headlist != null && headlist.Count > 0) {
resultList = headlist;
}
}
return Json(new { ErrorCode = 0, data = resultList }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(new { ErrorCode = 500, Message = "发生错误:" + e.Message }, JsonRequestBehavior.AllowGet);
}
}
*/
private string (string USERID) {
var wx = new WxAppDataContext();
var userinfo = wx.vw_user.First(x => x.USERID == USERID);
var userrole = wx.Sys_Role_Core.First(x => x.Role_Id == userinfo.Role_Id);
var worktype_startstr = "";
if (userrole.RoleName == "调度")
{
worktype_startstr = "调度";
}
if (userrole.RoleName == "场站")
{
worktype_startstr = "场站";
}
return worktype_startstr;
}
/// <summary>
/// 虎鲸 小程序
/// 获取该用户需要执行的业务列表
/// </summary>
/// <param name="logininfo"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetCTNMNGList(string USERID)
{
try
{
var resultList = new List<VW_OP_YARD_CTNMNG_HUJINGWXHeadList>();
var cdc = new CommonDataContext();
var wx = new WxAppDataContext();
//寻找这个人需要执行的业务内容
//寻找标准1 预计入场日期小于等于今天的预约业务
//寻找标准2 根据用户角色定义查询范围
//如果用户角色名为调度 则只显示 调度开头的worktype
//将这些OP_YARD_CTNMNG_WORK的父节点OP_YARD_CTNMNG返回
//var _user = cdc.Users.FirstOrDefault(x => x.CODENAME == CODENAME);
var worktype_startstr = (USERID);
//今天
var endTime = DateTime.Today.AddDays(1).AddSeconds(-1);//.ToUniversalTime().ToString();
var idlist = wx.OP_YARD_CTNMNG.Where(x => x.ENTERDATE <= endTime).Select(s=>s.GID).ToList();
//BasicDataRefDAL.SaveLog(headidlist, "", "wxapp", "虎鲸列表1");
var detailList = wx.OP_YARD_CTNMNG_WORK.Where(x => idlist.Contains(x.BSNO) && x.WORKTYPE.StartsWith(worktype_startstr) && ( x.WORKSTATUS == "未处理")).ToList();
//BasicDataRefDAL.SaveLog(detailList, "", "wxapp", "虎鲸列表2");
var userloadport = GetLoadPortList(USERID);
//BasicDataRefDAL.SaveLog(userloadport, "", "wxapp", "虎鲸列表3");
if (detailList != null && detailList.Count > 0)
{
List<Guid> idList = detailList.Select(s => s.BSNO).Distinct().ToList();
var tempList = wx.VW_OP_YARD_CTNMNG_HUJINGWXHeadList.Where(x =>
idList.Contains(x.GID)
&& userloadport.Contains(x.LOADPORT)
).ToList();
List<Guid> IDList = tempList.Select(s => (Guid)s.BlockTrainOrderGid).ToList();
string get(Guid BlockTrainOrderGid)
{
return detailList.FirstOrDefault(x => x.BSNO== get(BlockTrainOrderGid).GID).TRUCKNO;
}
VW_OP_YARD_CTNMNG_HUJINGWXHeadList get(Guid BlockTrainOrderGid)
{
return tempList.FirstOrDefault(x => x.BlockTrainOrderGid == BlockTrainOrderGid);
}
//如果同时有堆场和保税预约 则只返回堆场预约
//且将BILLTYPE设定为 堆场预约/保税预约
foreach (var bsno in IDList) {
if (tempList.Exists(x => x.BlockTrainOrderGid == bsno && x.AppointType=="yard"))
{
var newrec = tempList.First(x => x.BlockTrainOrderGid == bsno && x.AppointType == "yard");
newrec.BILLTYPE = "堆场预约";
if (tempList.Exists(x => x.BlockTrainOrderGid == bsno && x.AppointType == "yard")) {
newrec.BILLTYPE += "/保税预约";
}
if (resultList.Exists(x => x.BlockTrainOrderGid == bsno))
continue;
if (get(bsno).BILLSTATUS_CUST == "待出场") {
newrec.TRUCKNO = get(bsno);
}
resultList.Add(newrec);
}
else
{
var newrec = tempList.First(x => x.BlockTrainOrderGid == bsno && x.AppointType == "bond");
newrec.BILLTYPE = "保税预约";
if (get(bsno).BILLSTATUS_CUST == "待出场")
{
newrec.TRUCKNO = get(bsno);
}
resultList.Add(newrec);
}
}
//BasicDataRefDAL.SaveLog(resultList, "", "wxapp", "虎鲸列表4");
//foreach (var item in resultList) {
// item.BILLTYPE = detailList.FirstOrDefault(x => x.BSNO == item.GID).WORKTYPE;
//}
//resultList = wx.VW_OP_YARD_CTNMNG_HUJINGWXHeadList.Where(x => 1 == 1).ToList();
}
return Json(new { ErrorCode = 0, data = resultList }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
BasicDataRefDAL.SaveLog(e.Message, "", "wxapp", "虎鲸列表e");
return Json(new { ErrorCode = 500, Message = "发生错误:" + e.Message }, JsonRequestBehavior.AllowGet);
}
}
/// <summary>
/// 虎鲸 小程序
/// 点击待执行业务进行的查询
/// </summary>
/// <param name="GID"></param>
/// <param name="USERID"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetCTNMNGWORK_NeedDo(string GID, string USERID )
{
try
{
var result = new OP_YARD_CTNMNG_WORK();
var cdc = new CommonDataContext();
var wx = new WxAppDataContext();
//寻找这个人在这项业务中需要执行的业务内容并返回其中orderno最小的一项
var head = wx.OP_YARD_CTNMNG.FirstOrDefault(x => x.GID.ToString().ToUpper() == GID.ToUpper());
var order = wx.tb_BlockTrainOrder.FirstOrDefault(x => x.Gid == head.BlockTrainOrderGid);
var worktype_startstr = (USERID);
var detailList = wx.OP_YARD_CTNMNG_WORK.Where(x => x.BSNO==new Guid(GID) && x.WORKTYPE.StartsWith(worktype_startstr) && (x.WORKSTATUS == "未处理")).ToList();
if (detailList != null && detailList.Count > 0)
{
detailList = detailList.OrderBy(o => o.ORDERNO).ToList();
result = detailList[0];
}
var ImgList = new List<string>();
if (!string.IsNullOrWhiteSpace(result.IMGPATH)) {
ImgList = result.IMGPATH.Split(',').ToList();
}
var headlistrec = wx.VW_OP_YARD_CTNMNG_HUJINGWXHeadList.FirstOrDefault(x => x.GID == result.BSNO);
var truckno = head.TRUCKNO;
if (result.WORKTYPE == "场站出场")
{
truckno = result.TRUCKNO;
}
var _result = new { result.GID,BILLTYPE= head.AppointType_STR, CNTRNO= order.BoxCode , head.BILLSTATUS_CUST, CTNSTATUS= order.BoxStatus, result.WORKTYPE, result.WORKSTATUS, TRUCKNO= truckno, AREACODE= headlistrec.AREACODE, AREANAME = headlistrec.AREANAME, ImgList };
return Json(new { ErrorCode = 0, data = _result }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
BasicDataRefDAL.SaveLog(e.Message, "", "wxapp", "工作明细");
return Json(new { ErrorCode = 500, Message = "发生错误:" + e.Message }, JsonRequestBehavior.AllowGet);
}
}
[HttpGet]
public ActionResult GetCTNMNGWORK(string GID )
{
try
{
//var result = new OP_YARD_CTNMNG_WORK();
var cdc = new CommonDataContext();
var wx = new WxAppDataContext();
var result = wx.OP_YARD_CTNMNG_WORK.FirstOrDefault(x => x.GID==new Guid(GID));
var head = wx.OP_YARD_CTNMNG.FirstOrDefault(x => x.GID == result.BSNO);
var order = wx.tb_BlockTrainOrder.FirstOrDefault(x => x.Gid == head.BlockTrainOrderGid);
var ImgList = new List<string>();
if (!string.IsNullOrWhiteSpace(result.IMGPATH))
{
ImgList = result.IMGPATH.Split(',').ToList();
}
var _result = new { result.GID, BILLTYPE = head.AppointType_STR, CNTRNO = order.BoxCode, head.BILLSTATUS_CUST, CTNSTATUS = order.BoxStatus, result.WORKTYPE, result.WORKSTATUS, TRUCKNO = head.TRUCKNO, ImgList };
return Json(new { ErrorCode = 0, data = _result }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(new { ErrorCode = 500, Message = "发生错误:" + e.Message }, JsonRequestBehavior.AllowGet);
}
}
[HttpGet]
public ActionResult GetCanUseAreaCode(string USERID)
{
try
{
var result = new List<VW_OP_YARD_CTNMNG_STOREAREA_CANUSE>();
var wx = new WxAppDataContext();
var AreaCodeHeadList = GetAreaCodeHeadList(USERID);
var _r = wx.VW_OP_YARD_CTNMNG_STOREAREA_CANUSE.Where(x=>1==1).ToList();
if (AreaCodeHeadList != null && AreaCodeHeadList.Count > 0) {
foreach (var item in _r)
foreach(var headstr in AreaCodeHeadList)
{
if (item.AREACODE.StartsWith(headstr)) {
result.Add(item);
}
}
}
result.Sort(delegate (VW_OP_YARD_CTNMNG_STOREAREA_CANUSE p1, VW_OP_YARD_CTNMNG_STOREAREA_CANUSE p2)
{
return p1.AREACODE.CompareTo(p2.AREACODE);
});
return Json(new { ErrorCode = 0, data = result }, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(new { ErrorCode = 500, Message = "发生错误:" + e.Message }, JsonRequestBehavior.AllowGet);
}
}
[HttpPost]
public ActionResult UploadFile_CTNMNG()
{
try
{
var GID = Request.Form["GID"].ToString().Trim();
var ISEND = Request.Form["ISEND"].ToString().Trim() == "true";
var TRUCKNO = Request.Form["TRUCKNO"].ToString().Trim();
var CNTRNO = Request.Form["CNTRNO"].ToString().Trim();
var USERID = Request.Form["USERID"].ToString().Trim();
var AREACODE = Request.Form["AREACODE"].ToString().Trim();
var DODATE = Request.Form["DODATE"].ToString().Trim();
var dayfilepath = DateTime.Today.ToString("yyyyMMdd");
var InfoFilesPath = "Upload/Tables/VW_INFO_FILES/" + dayfilepath;//保存到数据库info_files表的路径
BasicDataRefDAL.SaveLog(new { GID, ISEND, TRUCKNO, CNTRNO, USERID, AREACODE, DODATE }, USERID, "wxapp", "虎鲸app02");
string upDir = Path.Combine(ConfigurationManager.AppSettings["DSWMSPICPATH"], InfoFilesPath);
if (!Directory.Exists(upDir))
{
Directory.CreateDirectory(upDir);
}
//H:\DSWMS\Vue.Net\VOL.WebApi\wwwroot\Upload/Tables/VW_INFO_FILES/202012100909412467/1.jpg
//向OP_YARD_CTNMNG_WORK的IMGPATH中追加图片地址。
var wx = new WxAppDataContext();
var workdetail = wx.OP_YARD_CTNMNG_WORK.FirstOrDefault(x => x.GID.ToString().ToUpper() == GID.ToUpper());
//判断此次上传图片数量加上现有图片是否超6张 如果是则返回错误
//改为app端判断
//var CurrentImgCount = workdetail.IMGPATH.Split(',').ToList().Count();
//var updcount = Request.Files.Count;
//if (CurrentImgCount + updcount > 6) {
// return Json(new { Success = false, Message = "图片数量超过6张请确认后重新上传" });
//}
if (Request.Files.Count > 0)
{
for (int c = 0; c < Request.Files.Count; c++)
{
var uploadFile = Request.Files[c];
if (uploadFile.ContentLength == 0)
{
continue;
}
var extension = Path.GetExtension(uploadFile.FileName);
var timename = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "_" + new Random().Next(100, 999) + extension;
var filepath = "\\" + timename;//随机生成文件名
var infofilepath = InfoFilesPath + "/" + timename;
var savePath = upDir + filepath;
uploadFile.SaveAs(savePath);
if (!string.IsNullOrWhiteSpace(workdetail.IMGPATH))
{
workdetail.IMGPATH += ",";
}
workdetail.IMGPATH += infofilepath;
//InfoFileList.Add(new { id = DateTime.Now.Ticks, url = relativepath + filepath, size = uploadFile.ContentLength });
}
wx.SaveChanges();
}
if (ISEND) {
workdetail.WORKSTATUS = "已处理";
//重新计算业务状态和集装箱状态
//var _r = DealStatus(workdetail,TRUCKNO,CNTRNO);
//if (!_r.Success) {
// return Json(new { Success = false, Message = "状态处理失败", Data = _r.Message });
//}
//20220114 箱状态和预约状态变更 改为在后台系统中实现
//此处改为调用
SetStatus(workdetail, USERID,TRUCKNO,AREACODE,DODATE);
}
return Json(new { Success = true, Message = "上传成功", Data = JsonConvert.SerializeObject(workdetail.IMGPATH) });
}
catch (Exception e)
{
return Json(new { Success = false, Message = e.Message });
}
return Json(new { Success = false, Message = "没有文件" });
}
[HttpPost]
public ActionResult CTNMNG_WorkDo()
{
try
{
var GID = Request.Form["GID"].ToString().Trim();
var ISEND = Request.Form["ISEND"].ToString().Trim() == "true";
var TRUCKNO = Request.Form["TRUCKNO"].ToString().Trim();
var CNTRNO = Request.Form["CNTRNO"].ToString().Trim();
var USERID = Request.Form["USERID"].ToString().Trim();
var AREACODE = Request.Form["AREACODE"].ToString().Trim();
var DODATE = Request.Form["DODATE"].ToString().Trim();
BasicDataRefDAL.SaveLog(new{ GID , ISEND , TRUCKNO, CNTRNO, USERID, AREACODE, DODATE }, USERID, "wxapp", "虎鲸app01");
var wx = new WxAppDataContext();
var workdetail = wx.OP_YARD_CTNMNG_WORK.FirstOrDefault(x => x.GID.ToString().ToUpper() == GID.ToUpper());
if (ISEND)
{
workdetail.WORKSTATUS = "已处理";
SetStatus(workdetail, USERID,TRUCKNO,AREACODE,DODATE);
}
//return GetCTNMNGWORK(GID);
return Json(new { Success = true, Message = "执行成功", Data = ""});
}
catch (Exception e)
{
return Json(new { Success = false, Message = e.Message });
}
return Json(new { Success = false, Message = "没有文件" });
}
public string SetStatus(OP_YARD_CTNMNG_WORK workdetail,string USERID,string TRUCKNO,string AREACODE,string DODATE) {
var result = "";
var wx = new WxAppDataContext();
var head = wx.OP_YARD_CTNMNG.FirstOrDefault(x => x.GID == workdetail.BSNO);
var dswmsurl = ConfigurationManager.AppSettings["DSWMSURL"] + "OP_YARD_CTNMNG/PublicFunc";
var dic = new Dictionary<string, string>();
dic.Add("TYPENAME", "CTNMNGDOWORK");
dic.Add("GID", workdetail.BSNO.ToString());
dic.Add("WORKTYPE", workdetail.WORKTYPE);
dic.Add("USERID", USERID);
dic.Add("AREACODE", AREACODE);
dic.Add("TRUCKNO", TRUCKNO);
dic.Add("DODATE", DODATE);
//BasicDataRefDAL.SaveLog(dic, USERID, "wxapp", "虎鲸app1");
var rtn = WebRequestHelper.DoPost_DSWMS(dswmsurl, dic, 50000);
BasicDataRefDAL.SaveLog("SetStatus:"+ rtn, USERID, "wxapp", "虎鲸app2");
return result;
}
public class UserLoadPortListmb
{
public bool Status { get; set; }
public List<string> Data { get; set; }
}
public List<string> GetLoadPortList(string USERID) {
var dswmsurl = ConfigurationManager.AppSettings["DSWMSURL"] + "OP_YARD_CTNMNG/PublicFunc";
var dic = new Dictionary<string, string>();
dic.Add("TYPENAME", "GetUserLoadPort");
dic.Add("GID", "");
dic.Add("WORKTYPE", "");
dic.Add("USERID", USERID);
dic.Add("AREACODE", "");
dic.Add("TRUCKNO", "");
dic.Add("DODATE", "");
var rtn = WebRequestHelper.DoPost_DSWMS(dswmsurl, dic, 50000);
BasicDataRefDAL.SaveLog("GetLoadPortList:" + rtn, USERID, "wxapp", "虎鲸app");
UserLoadPortListmb pt = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoadPortListmb>(rtn);
return pt.Data;
}
public List<string> GetAreaCodeHeadList(string USERID)
{
var dswmsurl = ConfigurationManager.AppSettings["DSWMSURL"] + "OP_YARD_CTNMNG/PublicFunc";
var dic = new Dictionary<string, string>();
dic.Add("TYPENAME", "GetAreaCodeHeadList");
dic.Add("GID", "");
dic.Add("WORKTYPE", "");
dic.Add("USERID", USERID);
dic.Add("AREACODE", "");
dic.Add("TRUCKNO", "");
dic.Add("DODATE", "");
var rtn = WebRequestHelper.DoPost_DSWMS(dswmsurl, dic, 50000);
BasicDataRefDAL.SaveLog("GetAreaCodeHeadList:" + rtn, USERID, "wxapp", "虎鲸app");
UserLoadPortListmb pt = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoadPortListmb>(rtn);
return pt.Data;
}
//[HttpGet]
//public ActionResult GetAreacode_canuse() {
//}
/// <summary>
/// 删除图片
/// 如果关联的入库执行没有处于1001状态则不允许删除
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult DelFile_CTNMNG(string GID,string PICSRC)
{
try
{
var wx = new WxAppDataContext();
//1首先找到这条业务明细 和它的父节点业务
var workdetail = wx.OP_YARD_CTNMNG_WORK.FirstOrDefault(x => x.GID == new Guid(GID));
var head = wx.OP_YARD_CTNMNG.FirstOrDefault(x => x.GID == workdetail.BSNO);
//2判断关联业务的状态 看能否删除
if (head.BILLSTATUS_CUST == "待发运")
{
return ErrorResult("业务完成,不可删除图片");
}
//3执行删除 即将workdetail当中的imgpath里面指定名称的图片路径去除。
var imgList = workdetail.IMGPATH.Split(',').ToList();
foreach (var img in imgList) {
if (PICSRC.IndexOf(img) > 0) {
workdetail.IMGPATH=workdetail.IMGPATH.Replace("," + img,"");
workdetail.IMGPATH=workdetail.IMGPATH.Replace(img+ ",", "");
workdetail.IMGPATH=workdetail.IMGPATH.Replace( img, "");
}
}
wx.SaveChanges();
}
catch (Exception e)
{
return ErrorResult(e.Message);
}
return ErrorResult("没有可以删除的文件");
}
/*
public class 箱状态factory
{
public static 箱状态 Get箱业务(OP_YARD_CTNMNG_WORK workdetail)
{
var wx = new WxAppDataContext();
var head = wx.OP_YARD_CTNMNG.FirstOrDefault(x => x.GID == workdetail.BSNO);
if (head.BILLTYPE == "保税转入")
{
return new 箱状态_保税转入(head);
}
if (head.BILLTYPE == "保税落箱" || head.BILLTYPE == "分类监管")
{
return new 箱状态_保税落箱分类监管(head);
}
if (head.BILLTYPE == "拼箱集运")
{
return new 箱状态_拼箱集运(head);
}
return null;
}
}
public abstract class 箱状态
{
public OP_YARD_CTNMNG head { get; set; }
public List<OP_YARD_CTNMNG_WORK> worklist { get; set; }
public 箱状态() { }
public abstract string Get箱状态();
}
public class 箱状态_保税转入 : 箱状态
{
public 箱状态_保税转入(OP_YARD_CTNMNG _head)
{
var wx = new WxAppDataContext();
head = _head;
//worklist = OP_YARD_CTNMNG_WORKRepository.Instance.FindAsIQueryable(x => x.BSNO == head.GID).ToList();
worklist = wx.OP_YARD_CTNMNG_WORK.Where(x => x.BSNO == head.GID).ToList();
}
public override string Get箱状态()
{
worklist = worklist.OrderBy(o => o.ORDERNO).ToList();
foreach (var item in worklist)
{
if (item.WORKSTATUS == "已处理")
{
if (item.WORKTYPE == "调度入区") head.CTNSTATUS = "待入区";
if (item.WORKTYPE == "调度出区") head.CTNSTATUS = "正在申报出区";
if (item.WORKTYPE == "卡口作业") head.CTNSTATUS = "正在前往铁路货场";
if (item.WORKTYPE == "铁路验查作业") head.CTNSTATUS = "等待铁路查验";
if (item.WORKTYPE == "铁路发运作业") head.CTNSTATUS = "待发运";
}
}
return head.CTNSTATUS;
//throw new global::System.NotImplementedException();
}
}
public class 箱状态_保税落箱分类监管 : 箱状态
{
public 箱状态_保税落箱分类监管(OP_YARD_CTNMNG _head)
{
head = _head;
var wx = new WxAppDataContext();
worklist = wx.OP_YARD_CTNMNG_WORK.Where(x => x.BSNO == head.GID).ToList();
}
public override string Get箱状态()
{
worklist = worklist.OrderBy(o => o.ORDERNO).ToList();
foreach (var item in worklist)
{
if (item.WORKSTATUS == "已处理")
{
if (item.WORKTYPE == "调度入区") head.CTNSTATUS = "待入区";
if (item.WORKTYPE == "仓库作业") head.CTNSTATUS = "已入区落箱";
if (item.WORKTYPE == "调度出区") head.CTNSTATUS = "正在申报出区";
if (item.WORKTYPE == "卡口作业") head.CTNSTATUS = "正在前往铁路货场";
if (item.WORKTYPE == "铁路验查作业") head.CTNSTATUS = "等待铁路查验";
if (item.WORKTYPE == "铁路发运作业") head.CTNSTATUS = "待发运";
}
}
return head.CTNSTATUS;
//throw new global::System.NotImplementedException();
}
}
public class 箱状态_拼箱集运 : 箱状态
{
public 箱状态_拼箱集运(OP_YARD_CTNMNG _head)
{
head = _head;
var wx = new WxAppDataContext();
worklist = wx.OP_YARD_CTNMNG_WORK.Where(x => x.BSNO == head.GID).ToList();
}
public override string Get箱状态()
{
worklist = worklist.OrderBy(o => o.ORDERNO).ToList();
foreach (var item in worklist)
{
if (item.WORKSTATUS == "已处理")
{
if (item.WORKTYPE == "仓库作业") head.CTNSTATUS = "正在装箱";
if (item.WORKTYPE == "调度入区") head.CTNSTATUS = "待入区";
if (item.WORKTYPE == "调度出区") head.CTNSTATUS = "正在申报出区";
if (item.WORKTYPE == "卡口作业") head.CTNSTATUS = "正在前往铁路货场";
if (item.WORKTYPE == "铁路验查作业") head.CTNSTATUS = "等待铁路查验";
if (item.WORKTYPE == "铁路发运作业") head.CTNSTATUS = "待发运";
}
}
return head.CTNSTATUS;
//throw new global::System.NotImplementedException();
}
}
*/
/// <summary>
/// 用于微信小程序修改车号和箱号
/// </summary>
/// <param name="workdetail"></param>
/// <param name="TRUCKNO"></param>
/// <param name="CNTRNO"></param>
/// <returns></returns>
///
/*
public DBResult DealStatus(OP_YARD_CTNMNG_WORK workdetail,string TRUCKNO,string CNTRNO) {
var wx = new WxAppDataContext();
//只有 调度入区 作业允许修改箱号
if (workdetail.WORKTYPE == "调度入区") {
var head = wx.OP_YARD_CTNMNG.FirstOrDefault(x => x.GID == workdetail.BSNO);
head.CNTRNO = CNTRNO;
wx.SaveChanges();
}
//只有 调度入区/调度出区/卡口作业 允许修改工作明细的车号
if (workdetail.WORKTYPE == "调度入区"|| workdetail.WORKTYPE == "调度出区" || workdetail.WORKTYPE == "卡口作业")
{
//workdetail.TRUCKNO = TRUCKNO;
var changerecord = wx.OP_YARD_CTNMNG_WORK.FirstOrDefault(x => x.GID == workdetail.GID);
changerecord.TRUCKNO = TRUCKNO;
if (workdetail.WORKTYPE == "调度入区") {
var head = wx.OP_YARD_CTNMNG.FirstOrDefault(x => x.GID == workdetail.BSNO);
head.TRUCKNO_IN = TRUCKNO;
}
if (workdetail.WORKTYPE == "调度出区")
{
var head = wx.OP_YARD_CTNMNG.FirstOrDefault(x => x.GID == workdetail.BSNO);
head.TRUCKNO_OUT = TRUCKNO;
}
wx.SaveChanges();
}
return DealStatus( workdetail);
}
public DBResult DealStatus(OP_YARD_CTNMNG_WORK workdetail)
{
var result = new DBResult();
try
{
var wx = new WxAppDataContext();
//分为两部分。一部分是更改顺序号较低业务的状态,由空改为未执行
//二部分是根据目前该业务的各明细的执行状态(状态为已处理的那条明细),修改该业务的箱状态
//《1》业务逻辑如下查找所有顺序小于该明细的业务明细如果WORKSTATUS="",将之更新为 "未处理"
result = DelOldDetail(workdetail);
if (!result.Success) return result;
//《2》业务逻辑如下查找状态为“已处理”的最大顺序号业务配合其“引入方式”获取其对应的箱状态 并写入主表
//var f = new 箱状态factory();
var 箱业务 = 箱状态factory.Get箱业务(workdetail);
var head = wx.OP_YARD_CTNMNG.FirstOrDefault(x => x.GID == workdetail.BSNO);
head.CTNSTATUS = 箱业务.Get箱状态();
wx.SaveChanges();
result.OK();
return result;
}
catch (Exception e)
{
result.SetErrorInfo(e.Message);
return result;
}
}
private static DBResult DelOldDetail(OP_YARD_CTNMNG_WORK workdetail)
{
var result = new DBResult();
var wx = new WxAppDataContext();
var oldDetailList = wx.OP_YARD_CTNMNG_WORK.Where(x => x.BSNO == workdetail.BSNO && x.ORDERNO < workdetail.ORDERNO).ToList();
if (oldDetailList == null || oldDetailList.Count == 0) {
result.OK();
return result;
}
//var updList = new List<OP_YARD_CTNMNG_WORK>();
var needupd = false;
foreach (var item in oldDetailList)
{
if (item.WORKSTATUS == "")
{
item.WORKSTATUS = "未处理";
//updList.Add(item);
needupd = true;
}
}
if (needupd)
{
//var i = OP_YARD_CTNMNG_WORKRepository.Instance.UpdateRange(updList, true);
wx.SaveChanges();
}
result.OK();
return result;
}
*/
}
}