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.

1021 lines
36 KiB
C#

12 months ago
using System;
using System.Linq;
using System.Text;
using System.Web.Mvc;
using DSWeb.MvcShipping.Helper;
using DSWeb.MvcShipping.Comm.Cookie;
using HcUtility.Comm;
using HcUtility.Core;
using System.Collections.Generic;
using System.IO;
using System.Data;
using DSWeb.Areas.CommMng.DAL;
using DSWeb.TruckMng.Helper.Repository;
using DSWeb.Areas.MvcShipping.DAL.MsOp_YAXIANG;
using DSWeb.MvcShipping.Models.MsOp_YAXIANG;
using DSWeb.Areas.OA.Models.WorkFlow;
using DSWeb.EntityDA;
using DSWeb.MvcShipping.DAL.MsSysParamSet;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.MvcShipping.DAL.MsSysBillNoSet;//编码规则
using DSWeb.Areas.SysMng.DAL.SysTask;
using DSWeb.MvcShipping.DAL.MsOpSeaiDAL;
using DSWeb.MvcShipping.Models.MsOpSeai;//海运进口业务
using DSWeb.Areas.Import.Models.Comm;//用于生成费用
using DSWeb.Areas.CommMng.Models;
using DSWeb.MvcShipping.DAL.MsBaseInfoDAL;//查询OP权限
using DSWeb.MvcShipping.DAL.MsCodeOpDef;
namespace DSWeb.MvcShipping.Controllers
{
/// <summary>
/// 押箱业务管理 邓羽 20190918
/// 需求编号 SR2019091100002
/// </summary>
[JsonRequestBehavior]
public class MsOp_YAXIANGController : Controller
{
//
// GET: /RptMng/MsRptPcHeadQry
public ActionResult Index()
{
return View();
}
public ActionResult Edit()
{
return View();
}
/// <summary>
/// 由海运进口模块调用参数是由逗号隔开的海运进口业务的BSNO
/// 如不可生成则返回错误
/// </summary>
/// <param name="BillnoList"></param>
/// <returns></returns>
public ContentResult MakeYX(string SeaiGIDListStr) {
var result = new JsonResponse
{
Success = false,
Message = "",
Data = null//fieldlist
};
var SeaiList = MsOpSeaiDAL.GetDataList(" BSNO in ("+ SeaiGIDListStr + ")",Session["USERID"].ToString(),Session["SHOWNAME"].ToString(),Session["COMPANYID"].ToString());
//1.查询这些业务是否已生成押箱业务
var ExistYX = BasicDataRefDAL.GeneralSelect("MsOp_YAXIANG_Detail","BSNO","YXNO", "BSNO in("+ SeaiGIDListStr + ")");
Database db = DatabaseFactory.CreateDatabase();
var newMessage = "";
var existMessage = "";
var NewYXNO = "";
var YXDetailList = new List<YX_DETAILmb>();
if (ExistYX.Count > 0) {
foreach (var YX in ExistYX) {
foreach (var Opseai in SeaiList) {
if (Opseai.BSNO == YX.GID) {
Opseai.SetValue("YXNO", YX.GVALUE);
}
}
}
}
var basebody = new YX_DETAILmb();
basebody.GetTableField(db);
foreach (var Opseai in SeaiList)
{
if (Opseai.GetValue("YXNO") == "")
{
if (newMessage == "")
{
NewYXNO = MsSysBillNoSetDAL.GetNewNo("押箱业务","委托编号", Session["COMPANYID"].ToString(), System.DateTime.Now.ToString("yyyy-MM-dd"));
newMessage = " 生成新的押箱单" + NewYXNO;
}
var yxdetail = new YX_DETAILmb();
basebody.Copy(yxdetail);
yxdetail.SetValue("BSNO", Opseai.BSNO);
yxdetail.setDefault();
YXDetailList.Add(yxdetail);
}
else {
if (existMessage == "")
{
existMessage = " 以下已经生成押箱单的业务未作处理:" ;
}
existMessage += " " + Opseai.CUSTNO+";";
}
}
//2.对未生成押箱业务的,生成押箱业务
if (newMessage != "")
{
var head = new YXmb();
head.GetTableField(db);
head.SetValue("GID", System.Guid.NewGuid().ToString());
head.SetValue("YXNO", NewYXNO);
head.SetValue("COMPANYID", Session["COMPANYID"].ToString());
head.SetValue("DEPTID", Session["DEPTGID"].ToString());
head.SetValue("CREATEUSER", Session["USERID"].ToString());
head.SetValue("CREATETIME", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
head.SetValue("YXSTATE", "3001");//初始状态
head.SetValue("YXMONEY", "0");//
head.SetValue("RETURNMONEY", "0");//
head.SetValue("SPENDMONEY", "0");//
//20191223 根据设定的默认值设定字段默认值
var FieldList = MsCodeOpDefDAL.GetDataList(" BSTYPE='押箱业务' ", Convert.ToString(Session["COMPANYID"]));
if (FieldList.Count > 0)
{
foreach (var field in FieldList)
{
//SetPropertyValue
head.SetValue(field.FIELDNAME, field.DEFVALUE);
}
}
head.DbOperationType = DbOperationType.DbotIns;
head.ModelUIStatus = "I";
var modb = new ModelObjectRepository();
DBResult _r = modb.Save(head,
ModelObjectConvert<YX_DETAILmb>.ToModelObjectList(YXDetailList),
ModelObjectConvert<YX_DETAILmb>.ToModelObjectList(null)
);
result.Success = true;
result.Message = newMessage + existMessage;
}
else {
result.Success = false;
result.Message = existMessage;
}
return new ContentResult() { Content = JsonConvert.Serialize(result) };
}
/// <summary>
/// 生成费用 目前产生录入状态的费用
/// </summary>
/// <param name="Head"></param>
/// <param name="Body"></param>
/// <returns></returns>
public ContentResult MakeFee(string Head, string Body)
{
Database db = DatabaseFactory.CreateDatabase();
var basebody = new YX_DETAILmb();
basebody.GetTableField(db);
var BodyList = new List<YX_DETAILmb>();
//var DelBodyList = new List<YX_DETAILmb>();
var head = new YXmb();
head.SetValue(db, Head);
var USERID = Convert.ToString(Session["USERID"]);
var enterdate = DateTime.Now;
if (Body != "")
{
var savedl = JsonConvert.Deserialize<List<Dictionary<string, string>>>(Body);
foreach (var sdl in savedl)
{
var body = new YX_DETAILmb();
basebody.Copy(body);
body.SetValue(sdl);
BodyList.Add(body);
}
}
var ChfeeList = new List<MsChFee>();
var existFeeList = new List<GeneralModel>();
existFeeList = BasicDataRefDAL.GeneralSelect(string.Format("select bsno gid,feename gvalue from ch_fee where feename in('修箱费','洗箱费','修洗箱费','超期箱使费','滞纳金') and feetype=2 and bxgid='{0}'", head.GetValue("YXNO")));
foreach (var YXDetail in BodyList) {
//修箱费
if (Convert.ToDecimal(YXDetail.GetValue("FIXFEE")) > 0 && !FeeExist(existFeeList, YXDetail.GetValue("BSNO"), "修箱费"))
{
var fee = getFee(head.GetValue("YXNO"), YXDetail.GetValue("BSNO"), "修箱费", Convert.ToDecimal(YXDetail.GetValue("FIXFEE")));
ChfeeList.Add(fee);
}
//洗箱费
if (Convert.ToDecimal(YXDetail.GetValue("WASHFEE")) > 0 && !FeeExist(existFeeList, YXDetail.GetValue("BSNO"), "洗箱费"))
{
var fee = getFee(head.GetValue("YXNO"), YXDetail.GetValue("BSNO"), "洗箱费", Convert.ToDecimal(YXDetail.GetValue("WASHFEE")));
ChfeeList.Add(fee);
}
//修洗箱费
if (Convert.ToDecimal(YXDetail.GetValue("FWFEE")) > 0 && !FeeExist(existFeeList, YXDetail.GetValue("BSNO"), "修洗箱费"))
{
var fee = getFee(head.GetValue("YXNO"), YXDetail.GetValue("BSNO"), "修洗箱费", Convert.ToDecimal(YXDetail.GetValue("FWFEE")));
ChfeeList.Add(fee);
}
//超期箱使费
if (Convert.ToDecimal(YXDetail.GetValue("OVERFEE")) > 0 && !FeeExist(existFeeList, YXDetail.GetValue("BSNO"), "超期箱使费"))
{
var fee = getFee(head.GetValue("YXNO"), YXDetail.GetValue("BSNO"), "超期箱使费", Convert.ToDecimal(YXDetail.GetValue("OVERFEE")));
ChfeeList.Add(fee);
}
//滞纳金
if (Convert.ToDecimal(YXDetail.GetValue("LATEFEE")) > 0 && !FeeExist(existFeeList, YXDetail.GetValue("BSNO"), "滞纳金"))
{
var fee = getFee(head.GetValue("YXNO"), YXDetail.GetValue("BSNO"), "滞纳金", Convert.ToDecimal(YXDetail.GetValue("LATEFEE")));
ChfeeList.Add(fee);
}
}
if (ChfeeList.Count > 0) {
foreach (var _d in ChfeeList)
{
_d.FeeStatus = 1;//生成录入状态的费用
_d.DbOperationType = DbOperationType.DbotIns;
_d.CustomerName = head.GetValue("CUSTOMERNAME");
}
}
var modb = new ModelObjectRepository();
var result = new DBResult();
if (ChfeeList.Count > 0)
{
result = modb.SaveHead(
ModelObjectConvert<MsChFee>.ToModelObjectList(ChfeeList)
);
}
else {
result.Success = false;
result.Message = "所有费用目前均已生成";
}
return new ContentResult() { Content = JsonConvert.Serialize(result) };
}
private MsChFee getFee(string YXNO, string BSNO, string FEENAME, decimal AMOUNT) {
var data = new MsChFee();
data.GId = Guid.NewGuid().ToString();
data.BsNo = BSNO;
data.UnitPrice = Convert.ToDecimal(AMOUNT);
data.Quantity = 1;
data.Amount = Convert.ToDecimal(AMOUNT);
//data.NoTaxAmount = Convert.ToDecimal(_C.prepayments);
data.FeeName = FEENAME;
//var CURRList = BasicDataRefDAL.GetcurrRefList("gid='" + _C.currid + "'");
var CURR = "RMB";
data.Currency = CURR;
data.ExChangerate = 1;
data.CARGO_GID = YXNO;//用CARGO_GID盛放YXNO
data.Remark = "押箱单号" + YXNO;//;
data.FeeType = 2;//应付
data.EnteroPerator = Session["USERID"].ToString();
data.EnterDate = DateTime.Now;
data.FeeStatus = 0;
return data;
}
private bool FeeExist(List<GeneralModel> existFeeList,string BSNO,string FEENAME)
{
foreach (var fee in existFeeList) {
if (fee.GID == BSNO && fee.GVALUE == FEENAME) {
return true;
}
}
return false;
}
#region 押箱业务 头表/明细表
//public ContentResult GetSqlStr(string YXNOList) {
// string sql = MsOp_YAXIANGDAL.gethea;
//}
public ContentResult GetDataList(int start, int limit, string condition, string sort="")
{
var dataList = MsOp_YAXIANGDAL.GetDataList(condition,Session["USERID"].ToString(), sort);
var _list = dataList.Skip(start).Take(limit);
//var list = new List<Dictionary<string, string>>();
//if (_list.Count() > 0) {
// foreach (var data in _list) {
// list.Add(data.ExtendDic);
// }
//}
var list_2 = ModelObjectBill.getDicList(ModelObjectConvert<YXmb>.ToModelObjectList(dataList));
var list_3 = list_2.Skip(start).Take(limit);
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
totalCount = dataList.Count(),
data = list_3.ToList()
//totalCount = dataList.Count,
//data = list.ToList()
//,fieldlist = fieldlist.ToList()
});
return new ContentResult() { Content = json };
}
public ContentResult GetData( string condition)
{
var data = MsOp_YAXIANGDAL.GetData(condition, Session["USERID"].ToString());
var result = new YXmb();
if (data.GetValue("CREATEUSER")!="")
{//代表不是新增的,存在现存数据
result = data;
}
else {
//新增数据 需设定默认值
var createtimeStr = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
result.SetValue("CREATETIME", createtimeStr);
result.SetValue("CREATEUSER", Session["USERID"].ToString());
result.SetValue("COMPANYID", Session["COMPANYID"].ToString());
result.SetValue("DEPTID", Session["DEPTGID"].ToString());
//YXMONEY SPENDMONEY RETURNMONEY
result.SetValue("YXMONEY", "0.00");
result.SetValue("SPENDMONEY", "0.00");
result.SetValue("RETURNMONEY", "0.00");
}
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
//totalCount = 1,
data = result.ExtendDic
//,fieldlist = fieldlist.ToList()
});
return new ContentResult() { Content = json };
}
public ContentResult GetBodyList( string condition )
{
var dataList = MsOp_YAXIANGDAL.GetBodyList(condition);
var list = new List<Dictionary<string, string>>();
if (dataList.Count() > 0)
{
foreach (var data in dataList)
{
list.Add(data.ExtendDic);
}
}
var json = JsonConvert.Serialize(new
{
Success = true,
Message = "查询成功",
totalCount = list.Count,
data = list.ToList()
});
return new ContentResult() { Content = json };
}
#endregion
public ContentResult Save(string opstatus, string data, string Body, string DelBody)//
{
var modb = new ModelObjectRepository();
Database db = DatabaseFactory.CreateDatabase();
var head = new YXmb();
head.SetValue(db, data);
var basebody = new YX_DETAILmb();
basebody.GetTableField(db);
var BodyList = new List<YX_DETAILmb>();
var DelBodyList = new List<YX_DETAILmb>();
if (Body != "")
{
var savedl = JsonConvert.Deserialize<List<Dictionary<string, string>>>(Body);
foreach (var sdl in savedl)
{
var body = new YX_DETAILmb();
basebody.Copy(body);
body.SetValue(sdl);
BodyList.Add(body);
}
}
if (opstatus == "add")
{
head.DbOperationType = DbOperationType.DbotIns;
head.ModelUIStatus = "I";
head.SetValue("GID", System.Guid.NewGuid().ToString());
var billnoset = MsSysBillNoSetDAL.GetData("OPLBNAME='押箱业务' AND RULEBLNO='押箱编号' ", Convert.ToString(Session["COMPANYID"]));
var _date = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var YXNO = MsSysBillNoSetDAL.GetBillNo(billnoset, _date, _date, "", Session["USERID"].ToString(), Session["COMPANYID"].ToString());
}
else if (opstatus == "edit")
{
head.DbOperationType = DbOperationType.DbotUpd;
head.ModelUIStatus = "E";
}
else
{
head.DbOperationType = DbOperationType.DbotDel;
}
DBResult result = modb.Save(head,
ModelObjectConvert<YX_DETAILmb>.ToModelObjectList(BodyList),
ModelObjectConvert<YX_DETAILmb>.ToModelObjectList(DelBodyList)
);
//保存完成后重新计算头表的实际扣款。
MsOp_YAXIANGDAL.ReCount(head);
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = MsOp_YAXIANGDAL.GetData(head.GetBillNoFieldName() + " = '" + head.GetBillNoValue() + "'",Session["USERID"].ToString()).ExtendDic//fieldlist
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
private static void updateMoney(string YXNO) {
var strSql = " update MsOp_YAXIANG set SPENDMONEY= ";
}
public ContentResult Delete(string data)
{
Database db = DatabaseFactory.CreateDatabase();
var head = new YXmb();
head.SetValue(db, data);
var canbedel = SysTaskDAL.TaskGetWord(head.GetValue("YXSTATE"),"candelete");
var HeadList = getCanOPList("["+data+"]");
//var canbedel = true;
if (canbedel == false && HeadList.Count>0)
{
var jsonRespose = new JsonResponse { Success = false, Message = "此状态下的押箱业务不能进行删除!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var modb = new ModelObjectDBBill();
DBResult result = modb.Delete(head,
"delete from MsOp_YAXIANG_DETAIL where YXNO='" + head.GetValue("YXNO") + "'");
//MsSysBillNoSetDAL.DeleteBsNo(head.BillNo);
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
public ContentResult DelDetail(string data,string GID)
{
Database db = DatabaseFactory.CreateDatabase();
var head = new YXmb();
head.SetValue(db, data);
var canbedel = SysTaskDAL.TaskGetWord(head.GetValue("YXSTATE"), "candelete");
//canbedel = true;
if (canbedel == false)
{
var jsonRespose = new JsonResponse { Success = false, Message = "此状态下的押箱业务不能进行删除!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
else
{
var strSql = new StringBuilder();
var jsonRespose = new JsonResponse { Success = false, Message = "" };
strSql.Append(" delete from MsOp_YAXIANG_DETAIL where GID in (" + GID + ")");
try
{
var _r = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
MsOp_YAXIANGDAL.ReCount(head);
}
catch (Exception ee)
{
jsonRespose.Success = false;
jsonRespose.Message = ee.Message;
}
jsonRespose.Success = true;
jsonRespose.Message = "明细删除成功";
jsonRespose.Data = MsOp_YAXIANGDAL.GetData(head.GetBillNoFieldName() + " = '" + head.GetBillNoValue() + "'",Session["USERID"].ToString()).ExtendDic;
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
#region 状态变更
public ContentResult PushState(string data,string Execution) {
Database db = DatabaseFactory.CreateDatabase();
var head = new YXmb();
head.SetValue(db, data);
return doPushState(head, Execution);
}
private ContentResult doPushState(YXmb head, string Execution)
{
var modb = new ModelObjectRepository();
JsonResponse result = new JsonResponse();
var STATE = head.GetValue("YXSTATE");
var newState = SysTaskDAL.DoExecution(STATE, Execution);
if (newState.STATEKEY == "0000")
{
result.Success = false;
result.Message = head.GetValue("YXSTATEREF") + "状态下的业务不能进行此操作";
}
else
{
head.SetValue("YXSTATE", newState.STATEKEY);
head.DbOperationType = DbOperationType.DbotUpd;
head.ModelUIStatus = "E";
var _r = modb.Save(head);
result.Success = _r.Success;
result.Message = _r.Message;
MsOp_YAXIANGDAL.ReCount(head);
}
return new ContentResult() { Content = JsonConvert.Serialize(result) };
}
public ContentResult PushState_List(string dataList, string Execution)
{
Database db = DatabaseFactory.CreateDatabase();
var baseHead = new YXmb();
baseHead.GetTableField(db);
var HeadList = new List<YXmb>();
if (dataList != "")
{
var savedl = JsonConvert.Deserialize<List<Dictionary<string, string>>>(dataList);
foreach (var sdl in savedl)
{
var head = new YXmb();
baseHead.Copy(head);
head.SetValue(sdl);
HeadList.Add(head);
}
if (HeadList.Count > 0) {
foreach (var head in HeadList) {
doPushState(head, Execution);
}
}
}
JsonResponse result = new JsonResponse();
result.Success = true;
return new ContentResult() { Content = JsonConvert.Serialize(result) };
}
//public ContentResult SQQR ( string USERID, string data ) //申请签入
//{
// var _r1 = SaveList_P(data);
// var _L = new List<MsOp_BLISSUEmb>();
// var result = new DBResult();
// foreach (var _p in _r1) {
// if (_p.BLSTATUS != "录入状态")
// {
// }
// else {
// _L.Add(_p);
// }
// }
// var jsonRespose = new JsonResponse();
// //var USERID=Convert.ToString(Session["USERID"]);
// if (_L.Count > 0)
// {
// result = MsOp_BLISSUEDAL.SQQR(_L, USERID);
// jsonRespose = new JsonResponse
// {
// Success = result.Success,
// Message = result.Message,
// //Data = XXHDAL.GetData("M.ContractNo='" + head.ContractNo + "'")
// };
// }
// else {
// result.Success = false;
// result.Message = "没有可以提交的提单";
// jsonRespose = new JsonResponse
// {
// Success = result.Success,
// Message = result.Message,
// Data = null
// };
// }
// return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
//}
//public ContentResult SQQR_back ( string USERID, string data ) //申请签入_撤回
//{
// var _r1 = SaveList_P(data);
// var _L = new List<MsOp_BLISSUEmb>();
// var result = new DBResult();
// foreach (var _p in _r1)
// {
// if (_p.BLSTATUS != "待签入")
// {
// }
// else
// {
// _L.Add(_p);
// }
// }
// var jsonRespose = new JsonResponse();
// //var USERID=Convert.ToString(Session["USERID"]);
// if (_L.Count > 0)
// {
// result = MsOp_BLISSUEDAL.SQQR_back(_L, USERID);
// jsonRespose = new JsonResponse
// {
// Success = result.Success,
// Message = result.Message,
// //Data = XXHDAL.GetData("M.ContractNo='" + head.ContractNo + "'")
// };
// }
// else
// {
// result.Success = false;
// result.Message = "没有可以撤回的提单";
// jsonRespose = new JsonResponse
// {
// Success = result.Success,
// Message = result.Message,
// Data = null
// };
// }
// return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
//}
//public ContentResult SQQR_Auditback ( string USERID, string data,string REASON ) //申请签入_撤回
//{
// var _r1 = SaveList_P(data);
// var _L = new List<MsOp_BLISSUEmb>();
// var result = new DBResult();
// foreach (var _p in _r1)
// {
// if (_p.BLSTATUS == "待签入" || _p.BLSTATUS == "已签入")
// {
// _L.Add(_p);
// }
// else
// {
// //_L.Add(_p);
// }
// }
// var jsonRespose = new JsonResponse();
// //var USERID=Convert.ToString(Session["USERID"]);
// if (_L.Count > 0)
// {
// result = MsOp_BLISSUEDAL.SQQR_Auditback(_L, USERID,REASON);
// jsonRespose = new JsonResponse
// {
// Success = result.Success,
// Message = result.Message,
// //Data = XXHDAL.GetData("M.ContractNo='" + head.ContractNo + "'")
// };
// }
// else
// {
// result.Success = false;
// result.Message = "没有可以撤回的提单";
// jsonRespose = new JsonResponse
// {
// Success = result.Success,
// Message = result.Message,
// Data = null
// };
// }
// return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
//}
//public ContentResult SQQR_Audit ( string USERID, string data ) //申请签入_准许签入
//{
// var _r1 = SaveList_P(data);
// var _L = new List<MsOp_BLISSUEmb>();
// var result = new DBResult();
// foreach (var _p in _r1)
// {
// if (_p.BLSTATUS != "待签入")
// {
// //result.Success = false;
// //result.Message = "只有录入状态的提单才能申请签入";
// //var jsonRespose = new JsonResponse
// //{
// // Success = result.Success,
// // Message = result.Message,
// // Data = null
// //};
// }
// else
// {
// _L.Add(_p);
// }
// }
// var jsonRespose = new JsonResponse();
// //var USERID=Convert.ToString(Session["USERID"]);
// if (_L.Count > 0)
// {
// result = MsOp_BLISSUEDAL.SQQR_Audit(_L, USERID);
// jsonRespose = new JsonResponse
// {
// Success = result.Success,
// Message = result.Message,
// //Data = XXHDAL.GetData("M.ContractNo='" + head.ContractNo + "'")
// };
// }
// else
// {
// result.Success = false;
// result.Message = "没有可以提交的提单";
// jsonRespose = new JsonResponse
// {
// Success = result.Success,
// Message = result.Message,
// Data = null
// };
// }
// return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
//}
#endregion
#region 工作流控制
private List<YXmb> getCanOPList(string dataList)
{
Database db = DatabaseFactory.CreateDatabase();
var baseHead = new YXmb();
baseHead.GetTableField(db);
var HeadList = new List<YXmb>();
var dicCanedit = new Dictionary<string, string>();
var modname = "modYAXIANG";
var userid = Session["USERID"].ToString();
if (dataList != "")
{
var savedl = JsonConvert.Deserialize<List<Dictionary<string, string>>>(dataList);
if (savedl.Count > 0)
foreach (var sdl in savedl)
{
var head = new YXmb();
baseHead.Copy(head);
head.SetValue(sdl);
//此处获取编辑权限
var canedit = "F";
if (!dicCanedit.TryGetValue(head.GetValue("CREATEUSER"), out canedit))
{
if (MsBaseInfoDAL.GetCanOP(modname, userid, head.GetValue("CREATEUSER")))
{
dicCanedit.Add(head.GetValue("CREATEUSER"), "T");
}
else dicCanedit.Add(head.GetValue("CREATEUSER"), "F");
}
else
{
}
if (dicCanedit[head.GetValue("CREATEUSER")] == "T")
{
HeadList.Add(head);
}
}
}
return HeadList;
}
//提交
public ContentResult SubmitAudit(string dataList) {
Database db = DatabaseFactory.CreateDatabase();
var baseHead = new YXmb();
baseHead.GetTableField(db);
var HeadList = getCanOPList(dataList);
if (HeadList.Count>0)
foreach (var head in HeadList)
{
AuditInfomb AuditInfo = AuditInfomb.getExecutionAudit(head, "YAXIANGAudit", "3000", Session["USERID"].ToString());
if (AuditInfo.cando())
{
var _r = WorkFlowDAL.SubmitAudit(AuditInfo);
}
}
JsonResponse result = new JsonResponse();
result.Success = true;
return new ContentResult() { Content = JsonConvert.Serialize(result) };
}
//撤回
public ContentResult SubmitAuditBack(string dataList)
{
Database db = DatabaseFactory.CreateDatabase();
var baseHead = new YXmb();
baseHead.GetTableField(db);
var HeadList = getCanOPList(dataList);
if (HeadList.Count > 0)
foreach (var head in HeadList)
{
AuditInfomb AuditInfo = new AuditInfomb(head, "YAXIANGAudit", "3001", Session["USERID"].ToString());
AuditInfo.FROMSTATE = "3002"; //从状态3002 提交审核出发
var _r = WorkFlowDAL.SubmitAuditBack(AuditInfo);
}
JsonResponse result = new JsonResponse();
result.Success = true;
return new ContentResult() { Content = JsonConvert.Serialize(result) };
}
//审核通过
public ContentResult Audit(string dataList)
{
Database db = DatabaseFactory.CreateDatabase();
var baseHead = new YXmb();
baseHead.GetTableField(db);
var HeadList = new List<YXmb>();
if (dataList != "")
{
var savedl = JsonConvert.Deserialize<List<Dictionary<string, string>>>(dataList);
foreach (var sdl in savedl)
{
var head = new YXmb();
baseHead.Copy(head);
head.SetValue(sdl);
HeadList.Add(head);
}
}
foreach (var head in HeadList)
{
AuditInfomb AuditInfo = new AuditInfomb(head, "YAXIANGAudit", "3003", Session["USERID"].ToString());
AuditInfo.FROMSTATE = "3002"; //从状态3002 提交审核出发 到3003审核通过
var _r = WorkFlowDAL.Audit(AuditInfo);
}
JsonResponse result = new JsonResponse();
result.Success = true;
return new ContentResult() { Content = JsonConvert.Serialize(result) };
}
//驳回提交
public ContentResult AuditBack(string dataList,string reason)
{
Database db = DatabaseFactory.CreateDatabase();
var baseHead = new YXmb();
baseHead.GetTableField(db);
var HeadList = new List<YXmb>();
if (dataList != "")
{
var savedl = JsonConvert.Deserialize<List<Dictionary<string, string>>>(dataList);
foreach (var sdl in savedl)
{
var head = new YXmb();
baseHead.Copy(head);
head.SetValue(sdl);
HeadList.Add(head);
}
}
foreach (var head in HeadList)
{
AuditInfomb AuditInfo = new AuditInfomb(head, "YAXIANGAudit", "3003", Session["USERID"].ToString());
AuditInfo.FROMSTATE = "3003"; //从状态3002 提交审核出发 到3003审核通过
//var reason = "";
var _r = WorkFlowDAL.AuditBack(AuditInfo,"PAYMENTREMARK='"+reason+"'", reason);
}
JsonResponse result = new JsonResponse();
result.Success = true;
return new ContentResult() { Content = JsonConvert.Serialize(result) };
}
#endregion
#region 获取打印的sql文本
public ContentResult GetPrintSql(string printname,string YXNOList)
{
var jsonRespose = new JsonResponse { Success = false, Message = "" };
if (printname == "Print1")
{
var result = new PrintSql();
result.sql1 = MsOp_YAXIANGDAL.getHeadListStr(" and YXNO in("+ YXNOList + ")", Session["USERID"].ToString());
result.sql2 = MsOp_YAXIANGDAL.getBodyListStr(" and D.YXNO in(" + YXNOList + ")");
jsonRespose.Success = true;
jsonRespose.Message = "查询成功";
jsonRespose.Data = result;
}
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
#endregion
}
}