642 lines
29 KiB
C#
642 lines
29 KiB
C#
using CRM.Core.DTO;
|
|
using CRM.Core.DTO.Ord;
|
|
using Newtonsoft.Json;
|
|
using NPOI.HSSF.UserModel;
|
|
using NPOI.SS.UserModel;
|
|
using NPOI.XSSF.UserModel;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Web;
|
|
using WX.CRM.BLL.Application.UserComBox;
|
|
using WX.CRM.BLL.Util;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.Common.Employee;
|
|
using WX.CRM.Common.Layui;
|
|
using WX.CRM.IBLL.Wx;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.Model.Enum;
|
|
using WX.CRM.Model.MAP;
|
|
|
|
namespace WX.CRM.BLL.Wx
|
|
{
|
|
public class WX_SZZYORDER_HANDGIFT_BL : IWX_SZZYORDER_HANDGIFT
|
|
{
|
|
private CACHE_BL cache_BL = new CACHE_BL();
|
|
|
|
public SecurityHelper sHelper = new SecurityHelper();
|
|
|
|
public List<Wx_SzzyOrder_HandGift_Map> GetHandGifList(ref Laypage pager, Wx_SzzyOrder_HandGift_Query param, QueryUserComboDto usercomboDto)
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
IQueryable<WX_SZZYORDER_HANDGIFT> queryData = db.WX_SZZYORDER_HANDGIFT.AsQueryable();
|
|
|
|
if (param.ORDERSTATUS.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.ORDERSTATUS == param.ORDERSTATUS.Value);
|
|
}
|
|
if (param.ORDERID.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.ORDERID == param.ORDERID.Value);
|
|
}
|
|
if (param.MAINORDERID.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.MAINORDERID == param.MAINORDERID.Value);
|
|
}
|
|
if (!string.IsNullOrEmpty(param.RESID))
|
|
{
|
|
param.RESID = param.RESID.Trim();
|
|
queryData = queryData.Where(m => m.RESID == param.RESID);
|
|
}
|
|
if (!string.IsNullOrEmpty(param.SOFTUSERNAME))
|
|
{
|
|
queryData = queryData.Where(m => m.SOFTUSERNAME == param.SOFTUSERNAME);
|
|
}
|
|
if (param.STIME.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.CTIME >= param.STIME.Value);
|
|
}
|
|
if (param.ETIME.HasValue)
|
|
{
|
|
param.ETIME = param.ETIME.Value.AddDays(1);
|
|
queryData = queryData.Where(m => m.CTIME < param.ETIME.Value);
|
|
}
|
|
if (param.CONTRACTSTATUS.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.CONTRACTSTATUS == param.CONTRACTSTATUS);
|
|
}
|
|
|
|
var data = from a in queryData
|
|
join b in db.WX_SZZYORDER on a.MAINORDERID equals b.ORDERID into t1
|
|
from b in t1.DefaultIfEmpty()
|
|
join c in db.WX_ORDEREXT on a.MAINORDERID equals c.ORDERID into t2
|
|
from c in t2.DefaultIfEmpty()
|
|
join d in db.BAS_INNERUSER on b.INNERUSERID equals d.PKID into t3
|
|
from d in t3.DefaultIfEmpty()
|
|
select new Wx_SzzyOrder_HandGift_Map()
|
|
{
|
|
ORDERID = a.ORDERID,
|
|
CHANNEL = c.CHANNEL,
|
|
HandGiftChannel = a.CHANNEL,
|
|
CHECKMEMO = a.CHECKMEMO,
|
|
COMPANYCODE = a.COMPANYCODE,
|
|
CREATEUSER = a.CREATEUSER,
|
|
CTIME = a.CTIME,
|
|
GIFTDAYS = a.GIFTDAYS,
|
|
MAINORDERID = a.MAINORDERID,
|
|
MAINPDAYS = b.OPENDAYS,
|
|
MAINPGIF = b.GIFTDAYS,
|
|
MAINPRODUCTNAME = b.SUBPRODUCTNAME,
|
|
MEMO = a.MEMO,
|
|
OLDOUTORDERNO = a.OLDOUTORDERNO,
|
|
OPENUSER = a.OPENUSER,
|
|
ORDERSTATUS = a.ORDERSTATUS,
|
|
OPTIME = a.OPTIME,
|
|
OTIME = a.OTIME,
|
|
OUTORDERCLOSETIME = a.OUTORDERCLOSETIME,
|
|
OUTORDERNO = a.OUTORDERNO,
|
|
PRODUCTCODE = a.PRODUCTCODE,
|
|
PRODUCTID = a.PRODUCTID,
|
|
RESID = a.RESID,
|
|
SOFTUSERNAME = a.SOFTUSERNAME,
|
|
SUBPRODUCTCODE = a.SUBPRODUCTCODE,
|
|
SUBPRODUCTNAME = a.SUBPRODUCTNAME,
|
|
SZZYORDERID = a.SZZYORDERID,
|
|
USERID = a.USERID,
|
|
CLOSEMEMO = a.CLOSEMEMO,
|
|
CLOSETIME = a.CLOSETIME,
|
|
CLOSEUSER = a.CLOSEUSER,
|
|
DEPTCODE = b.DEPTCODE,
|
|
CONTRACTCTIME = a.CONTRACTCTIME,
|
|
CONTRACTSTATUS = a.CONTRACTSTATUS,
|
|
CONTRACTCODE = a.CONTRACTCODE,
|
|
CREATEEID = a.CREATEEID,
|
|
OrderEid = d.EID
|
|
};
|
|
|
|
if (usercomboDto.txt_eid.HasValue)
|
|
{
|
|
data = data.Where(m => m.CREATEEID == usercomboDto.txt_eid.Value || m.OrderEid == usercomboDto.txt_eid.Value);
|
|
}
|
|
else if (!string.IsNullOrEmpty(usercomboDto.txt_groupIds))
|
|
{
|
|
var _groupids = OperationUtil.ConvertToDecimal(usercomboDto.txt_groupIds.Split(','));
|
|
data = (from a in data
|
|
join c in db.BAS_INNERUSER on a.CREATEEID equals c.EID
|
|
join b in db.BAS_INNERUSERGROUP on c.PKID equals b.INNERUSERID
|
|
|
|
where _groupids.Contains(b.GID.Value)
|
|
select a);
|
|
}
|
|
else if (!string.IsNullOrEmpty(usercomboDto.txt_deptId))
|
|
{
|
|
var depts = OperationUtil.ConvertToDecimal(usercomboDto.txt_deptId.Split(','));
|
|
List<decimal> ALLdeptIDS = new List<decimal>();
|
|
List<decimal> ALLgidS = new List<decimal>();
|
|
UserServices userservices = new UserServices(cache_BL);
|
|
foreach (var item in depts)
|
|
{
|
|
List<decimal> deptIDS = new List<decimal>();
|
|
List<decimal> gidS = new List<decimal>();
|
|
userservices.GetAllDeptIDOrGidByDeptId(item, ref deptIDS, ref gidS);//获取所有的组别和gid
|
|
ALLdeptIDS.AddRange(deptIDS);
|
|
ALLgidS.AddRange(gidS);
|
|
}
|
|
|
|
var deptcodes = (from a in db.BAS_BUSINESSDEPARTMENT
|
|
join b in db.BAS_SALESDEPARTMENT on a.DEPTID equals b.SALEDEPTID
|
|
where ALLdeptIDS.Contains(a.DEPTID)
|
|
select b.SALEDEPTCODE).ToArray();
|
|
data = (from a in data
|
|
join c in db.BAS_INNERUSER on a.CREATEEID equals c.EID
|
|
join x in db.BAS_INNERUSERGROUP on c.PKID equals x.INNERUSERID into tempB
|
|
from b in tempB.DefaultIfEmpty()
|
|
//join g in db.BAS_INNERGROUP on b.GID equals g.GID
|
|
where ALLdeptIDS.Contains(b.DEPTID.Value) || ALLgidS.Contains(b.GID.Value)
|
|
select a);
|
|
}
|
|
else if (usercomboDto.txt_companyId.HasValue)
|
|
{
|
|
data = (from a in data
|
|
join c in db.BAS_INNERUSER on a.CREATEEID equals c.EID
|
|
join b in db.BAS_INNERUSERGROUP on c.PKID equals b.INNERUSERID
|
|
join g in db.BAS_INNERGROUP on b.GID equals g.GID
|
|
join m in db.BAS_SALESDEPARTMENT on g.SALEDEPTID equals m.SALEDEPTID
|
|
where m.COMPANYID == usercomboDto.txt_companyId.Value
|
|
select a);
|
|
}
|
|
|
|
data = data.OrderByDescending(m => m.CTIME);
|
|
PagerUtil.SetPager<Wx_SzzyOrder_HandGift_Map>(ref data, ref pager);//分页
|
|
var res = data.ToList();
|
|
//查询事业部
|
|
var deptNameList = cache_BL.GetDeptNameMapList();
|
|
var channelList = res.Where(n => !string.IsNullOrWhiteSpace(n.CHANNEL)).Select(n => Convert.ToInt32(n.CHANNEL)).ToList();
|
|
var giftChannel = res.Where(n => n.HandGiftChannel > 0).Select(n => Convert.ToInt32(n.HandGiftChannel)).ToList();
|
|
channelList.AddRange(giftChannel);
|
|
var dicMap = cache_BL.ConvertChannelName(deptNameList, channelList);
|
|
var creatorList = res.Where(m => !string.IsNullOrEmpty(m.CREATEUSER)).Select(n => n.CREATEUSER).Distinct().ToList();
|
|
List<decimal> eidList = new List<decimal>();
|
|
foreach (var creator in creatorList)
|
|
{
|
|
decimal eid = -1;
|
|
|
|
if (decimal.TryParse(creator.Split('-').FirstOrDefault(), out eid))
|
|
{
|
|
eidList.Add(eid);
|
|
}
|
|
}
|
|
|
|
var deptEidMap = cache_BL.GetUserDeptNameByEid(eidList);
|
|
foreach (var item in res)
|
|
{
|
|
var num = 0;
|
|
|
|
if (Int32.TryParse(item.CHANNEL, out num))
|
|
{
|
|
item.DEPTCODE = dicMap.ContainsKey(num) ? dicMap[num] : "未知";
|
|
}
|
|
if (string.IsNullOrWhiteSpace(item.CHANNEL) && item.HandGiftChannel > 0)
|
|
{
|
|
num = Convert.ToInt32(item.HandGiftChannel);
|
|
item.DEPTCODE = dicMap.ContainsKey(num) ? dicMap[num] : "未知";
|
|
}
|
|
var eid = item.CREATEUSER.Split('-').FirstOrDefault();
|
|
if (string.IsNullOrEmpty(eid) && item.CREATEEID.HasValue)
|
|
{
|
|
eid = item.CREATEEID.ToString();
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(eid))
|
|
{
|
|
var mapModel = deptEidMap.FirstOrDefault(n => n.Eid.ToString() == eid);
|
|
item.RequestDeptName = mapModel?.DeptName;
|
|
}
|
|
}
|
|
return res;
|
|
}
|
|
}
|
|
|
|
public WX_SZZYORDER_HANDGIFT GetHandleGifById(decimal orderid)
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
return db.WX_SZZYORDER_HANDGIFT.FirstOrDefault(n => n.ORDERID == orderid);
|
|
}
|
|
}
|
|
|
|
public int GetAuditCount(decimal orderid)
|
|
{
|
|
var auditCount = 0;
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
var order = db.WX_SZZYORDER_HANDGIFT.FirstOrDefault(n => n.ORDERID == orderid);
|
|
List<decimal> eidList = new List<decimal>();
|
|
decimal eid = -1;
|
|
if (decimal.TryParse(order.CREATEUSER.Split('-').FirstOrDefault(), out eid))
|
|
{
|
|
eidList.Add(eid);
|
|
}
|
|
var deptEidMap = cache_BL.GetUserDeptNameByEid(eidList);
|
|
int? saleDeptId = -1;
|
|
if (deptEidMap.Count > 0)
|
|
{
|
|
saleDeptId = deptEidMap.FirstOrDefault().SaleDeptId == null ? -1 : deptEidMap.FirstOrDefault().SaleDeptId;
|
|
}
|
|
if (saleDeptId == -1)
|
|
{
|
|
int curChannel = 0;
|
|
var channelSetting = Utility.GetSettingOrNullByKey("Channel");
|
|
if (!string.IsNullOrWhiteSpace(channelSetting))
|
|
{
|
|
curChannel = Convert.ToInt32(channelSetting);
|
|
}
|
|
var defaultDept = cache_BL.ConvertChannelName(new List<int> { curChannel });
|
|
if (defaultDept.FirstOrDefault() != null && defaultDept.FirstOrDefault().id > 0)
|
|
{
|
|
saleDeptId = Convert.ToInt32(defaultDept.FirstOrDefault().id);
|
|
}
|
|
}
|
|
var nowMonthDate = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date;
|
|
var nowMonthList = db.WX_SZZYORDER_HANDGIFT.Where(n => n.AUDITTYPE == 1 && n.ORDERSTATUS == 1 && n.OPTIME > nowMonthDate && n.SALEDEPTID == saleDeptId).ToList();
|
|
auditCount = nowMonthList.Count();
|
|
}
|
|
return auditCount;
|
|
}
|
|
|
|
public OrderHandGiftDto GetSuProductIdByOrderId(long orderId, ref ValidationErrors errors)
|
|
{
|
|
OrderHandGiftDto dto = new OrderHandGiftDto()
|
|
{
|
|
orderid = orderId,
|
|
companycode = Utility.GetSettingOrNullByKey("DataClientCode")
|
|
};
|
|
var sHelper = new SecurityHelper();
|
|
var url = new CACHE_BL().GetValue_Parameter(Parameter.Core_ZxdService_GetSuProductIdByOrderId);
|
|
var json = sHelper.createSignEncodingStr(dto.ToJson(), SecurityHelper.OrderClientIdKey);
|
|
//url = "http://localhost:55047//OrderService.svc/Order/GetSuProductIdByOrderId";
|
|
string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
|
|
//retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg);
|
|
var retmessage = Newtonsoft.Json.JsonConvert.DeserializeObject<retMsgNew<OrderHandGiftDto>>(retmsg);
|
|
if (retmessage.result)
|
|
{
|
|
dto = retmessage.data;
|
|
}
|
|
else
|
|
{
|
|
errors.Add(retmessage.retmsg);
|
|
}
|
|
return dto;
|
|
}
|
|
|
|
public bool Save(WX_SZZYORDER_HANDGIFT model, ref ValidationErrors errors)
|
|
{
|
|
bool result = false;
|
|
|
|
#region 指定渠道
|
|
|
|
decimal curChannel = 0;
|
|
var channelSetting = Utility.GetSettingOrNullByKey("Channel");
|
|
if (!string.IsNullOrWhiteSpace(channelSetting))
|
|
{
|
|
curChannel = Convert.ToInt32(channelSetting);
|
|
}
|
|
|
|
#endregion 指定渠道
|
|
|
|
try
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
//var orderext = db.WX_ORDEREXT.FirstOrDefault(m => m.ORDERID == model.MAINORDERID);
|
|
//if (orderext == null)
|
|
//{
|
|
// errors.Add("订单信息错误!");
|
|
// return false;
|
|
//}
|
|
//var mainorder = db.WX_SZZYORDER.FirstOrDefault(m => m.ORDERID == model.MAINORDERID);
|
|
//if (mainorder == null)
|
|
//{
|
|
// errors.Add("订单信息错误!");
|
|
// return false;
|
|
//}
|
|
//model.PRODUCTID = mainorder.SUBPRODUCTID;
|
|
//var product = db.WX_SZZYSUBPRODUCT.FirstOrDefault(m => m.SUBPRODUCTID == model.PRODUCTID);
|
|
//if (product.ISGIFT != 1)
|
|
//{
|
|
// errors.Add("此订单产品未开启赠送!");
|
|
// return false;
|
|
//}
|
|
//model.PRODUCTCODE = product.PRODUCTCODE;
|
|
//model.SOFTUSERNAME = orderext.SOFTUSERNAME;
|
|
//model.ORDERSTATUS = 0;
|
|
//model.RESID = mainorder.RESID;
|
|
//model.ORDERID = new SEQUENCES_BL().Seq_base_get();
|
|
model.CTIME = DateTime.Now;
|
|
|
|
var model2 = GetSuProductIdByOrderId(long.Parse(model.MAINORDERID.ToString()), ref errors);
|
|
model.PRODUCTID = model2.subproductid;
|
|
model.PRODUCTCODE = model2.productcode;
|
|
|
|
#region 调用中心点接口
|
|
|
|
//调用中心点赠送订单申请接口
|
|
//dto.companycode = companyCode;
|
|
OrderHandGiftDto dto = new OrderHandGiftDto()
|
|
{
|
|
channel = Convert.ToInt32(model.CHANNEL),
|
|
checkmemo = model.CHECKMEMO,
|
|
companycode = Utility.GetSettingOrNullByKey("DataClientCode"),
|
|
createuser = model.CREATEUSER,
|
|
ctime = model.CTIME,
|
|
giftdays = Convert.ToInt32(model.GIFTDAYS),
|
|
mainorderid = Convert.ToInt64(model.MAINORDERID),
|
|
memo = model.MEMO,
|
|
orderid = Convert.ToInt64(model.ORDERID),
|
|
orderstatus = Convert.ToInt32(model.ORDERSTATUS),
|
|
productcode = model.PRODUCTCODE,
|
|
productid = Convert.ToInt32(model.PRODUCTID),
|
|
resid = model.RESID,
|
|
softusername = model.SOFTUSERNAME,
|
|
subproductcode = model.SUBPRODUCTCODE,
|
|
subproductname = model.SUBPRODUCTNAME,
|
|
requireChannel = Convert.ToInt32(curChannel)
|
|
};
|
|
|
|
var sHelper = new SecurityHelper();
|
|
var url = new CACHE_BL().GetValue_Parameter(Parameter.Core_ZxdService_OrderHandleGift);
|
|
var json = sHelper.createSignEncodingStr(dto.ToJson(), SecurityHelper.OrderClientIdKey);
|
|
string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
|
|
//retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg);
|
|
|
|
var retmessage = Newtonsoft.Json.JsonConvert.DeserializeObject<retMsgNew<OrderHandGiftDto>>(retmsg);
|
|
if (retmessage.result)
|
|
{
|
|
model.ORDERID = retmessage.data.orderid;
|
|
model.SUBPRODUCTNAME = retmessage.data.subproductname;
|
|
model.SUBPRODUCTCODE = retmessage.data.subproductcode;
|
|
model.PRODUCTTYPE = retmessage.data.producttype;//0-单一产品、1-组合产品
|
|
model.SZZYORDERID = retmessage.data.szzyorderid;
|
|
//赠送订单的自动审核功能根据配置启用/禁用
|
|
var autoAuditGiftStr = cache_BL.GetValue_Parameter(Parameter.Auto_AuditGift);
|
|
if (!string.IsNullOrWhiteSpace(autoAuditGiftStr))
|
|
{
|
|
var autoAuditGift = Newtonsoft.Json.JsonConvert.DeserializeObject<AutoAuditGiftParameterDto>(autoAuditGiftStr);
|
|
if (autoAuditGift.IsAutoAudit)
|
|
{
|
|
model.ORDERSTATUS = retmessage.data.orderstatus;
|
|
model.OPTIME = retmessage.data.otime.HasValue ? retmessage.data.otime.Value.AddHours(8) : DateTime.Now;
|
|
model.CHECKMEMO = retmessage.data.checkmemo;
|
|
model.OPENUSER = retmessage.data.openuser;
|
|
}
|
|
}
|
|
|
|
model.SZZYORDERID = retmessage.data.szzyorderid;
|
|
model.SALEDEPTID = retmessage.data.saleDeptId;
|
|
db.WX_SZZYORDER_HANDGIFT.Add(model);
|
|
db.SaveChanges();
|
|
result = true;
|
|
}
|
|
else
|
|
{
|
|
errors.Add(retmessage.retmsg);
|
|
result = false;
|
|
}
|
|
|
|
#endregion 调用中心点接口
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
errors.Add(ex.Message);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public bool CheckSave(WX_SZZYORDER_HANDGIFT editmodel, ref ValidationErrors errors)
|
|
{
|
|
bool result = false;
|
|
try
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
var model = db.WX_SZZYORDER_HANDGIFT.FirstOrDefault(n => n.ORDERID == editmodel.ORDERID);
|
|
|
|
var model2 = GetSuProductIdByOrderId(long.Parse(model.MAINORDERID.ToString()), ref errors);
|
|
model.PRODUCTID = model2.subproductid;
|
|
model.PRODUCTCODE = model2.productcode;
|
|
|
|
#region 调用中心点接口
|
|
|
|
//调用中心点赠送订单申请接口
|
|
//dto.companycode = companyCode;
|
|
AuditHandGiftDto dto = new AuditHandGiftDto()
|
|
{
|
|
orderstatus = Convert.ToInt32(editmodel.ORDERSTATUS),
|
|
OrderId = editmodel.ORDERID,
|
|
Memo = editmodel.MEMO,
|
|
OpenUser = editmodel.OPENUSER
|
|
};
|
|
var sHelper = new SecurityHelper();
|
|
var url = new CACHE_BL().GetValue_Parameter(Parameter.Core_ZxdService_AuditOrderGift);
|
|
var json = sHelper.createSignEncodingStr(dto.ToJson(), SecurityHelper.OrderClientIdKey);
|
|
//url = "http://localhost:55047/OrderService.svc/OrderHandleGift/Audit";
|
|
string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
|
|
//retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg);
|
|
var retmessage = Newtonsoft.Json.JsonConvert.DeserializeObject<retMsgNew<WX_SZZYORDER_HANDGIFT>>(retmsg);
|
|
if (retmessage.result)
|
|
{
|
|
model.CHECKMEMO = retmessage.data.CHECKMEMO;
|
|
model.OPENUSER = retmessage.data.OPENUSER;
|
|
model.OPTIME = retmessage.data.OPTIME.HasValue ? retmessage.data.OPTIME.Value.AddHours(8) : DateTime.Now;
|
|
model.ORDERSTATUS = retmessage.data.ORDERSTATUS;//0-单一产品、1-组合产品
|
|
if (model.ORDERSTATUS == 1)
|
|
{
|
|
model.AUDITTYPE = 1;
|
|
}
|
|
db.SaveChanges();
|
|
result = true;
|
|
}
|
|
else
|
|
{
|
|
errors.Add(retmessage.retmsg);
|
|
result = false;
|
|
}
|
|
|
|
#endregion 调用中心点接口
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
errors.Add(ex.Message);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public bool UpdateCheckStatus(WX_SZZYORDER_HANDGIFT model, ref ValidationErrors errors)
|
|
{
|
|
bool result = false;
|
|
try
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
var entry = db.WX_SZZYORDER_HANDGIFT.FirstOrDefault(m => m.ORDERID == model.ORDERID);
|
|
if (entry == null)
|
|
{
|
|
LogHelper.Info("WX_SZZYORDER_HANDGIFT找不到订单号,补数据:" + model.ORDERID);
|
|
db.WX_SZZYORDER_HANDGIFT.Add(model);
|
|
db.SaveChanges();
|
|
return true;
|
|
}
|
|
entry.ORDERSTATUS = model.ORDERSTATUS;
|
|
entry.OPENUSER = model.OPENUSER;
|
|
entry.OPTIME = model.OPTIME;
|
|
entry.SZZYORDERID = model.SZZYORDERID;
|
|
entry.CHECKMEMO = model.CHECKMEMO;
|
|
entry.CLOSEMEMO = model.CLOSEMEMO;
|
|
entry.CLOSEUSER = model.CLOSEUSER;
|
|
entry.CLOSETIME = model.CLOSETIME;
|
|
entry.CONTRACTSTATUS = model.CONTRACTSTATUS;
|
|
entry.CONTRACTCODE = model.CONTRACTCODE;
|
|
entry.CONTRACTCTIME = model.CONTRACTCTIME;
|
|
entry.ISFORCE = model.ISFORCE;
|
|
db.SaveChanges();
|
|
result = true;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
errors.Add(ex.Message);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public bool AddHandGift(WX_SZZYORDER_HANDGIFT model, ref ValidationErrors errors)
|
|
{
|
|
bool result = false;
|
|
try
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
var entry = db.WX_SZZYORDER_HANDGIFT.FirstOrDefault(m => m.ORDERID == model.ORDERID);
|
|
if (entry == null)
|
|
{
|
|
LogHelper.Info("WX_SZZYORDER_HANDGIFT找不到订单号,补数据:" + model.ORDERID);
|
|
db.WX_SZZYORDER_HANDGIFT.Add(model);
|
|
db.SaveChanges();
|
|
return true;
|
|
}
|
|
entry.ORDERSTATUS = model.ORDERSTATUS;
|
|
entry.OPENUSER = model.OPENUSER;
|
|
entry.OPTIME = model.OPTIME;
|
|
entry.SZZYORDERID = model.SZZYORDERID;
|
|
entry.CHECKMEMO = model.CHECKMEMO;
|
|
entry.CLOSEMEMO = model.CLOSEMEMO;
|
|
entry.CLOSEUSER = model.CLOSEUSER;
|
|
entry.CLOSETIME = model.CLOSETIME;
|
|
entry.CONTRACTSTATUS = model.CONTRACTSTATUS;
|
|
entry.CONTRACTCODE = model.CONTRACTCODE;
|
|
entry.CONTRACTCTIME = model.CONTRACTCTIME;
|
|
db.SaveChanges();
|
|
result = true;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
errors.Add(ex.Message);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public ApiResult<List<ImportGiftOrderViewModel>> ImportBasicsGift(string filename, Stream filestream)
|
|
{
|
|
try
|
|
{
|
|
var file_ext = Path.GetExtension(filename).ToLower();
|
|
var importData = ImportBasicsGiftFromExcel(filestream, file_ext);
|
|
if (importData.Count > 0)
|
|
{
|
|
var apiPath = cache_BL.GetValue_Parameter(Parameter.ZXD_CORE_WEBAPI);
|
|
//apiPath = "http://localhost:5244";
|
|
var headers = new Dictionary<string, string>();
|
|
var json = importData.ToJson();
|
|
string result = Utility.PostAjaxData($"{apiPath}/Api/Order/ImportHandGiftPreview", json, headers, Encoding.UTF8);//返回信息
|
|
|
|
var response = JsonConvert.DeserializeObject<ApiResult<List<ImportGiftOrderViewModel>>>(result);
|
|
return response;
|
|
}
|
|
else
|
|
{
|
|
return new ApiResult<List<ImportGiftOrderViewModel>>
|
|
{
|
|
code = -1,
|
|
msg = "数据不合法"
|
|
};
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return new ApiResult<List<ImportGiftOrderViewModel>>
|
|
{
|
|
code = -1,
|
|
msg = ex.Message
|
|
};
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public List<ImportGiftOrderDto> ImportBasicsGiftFromExcel(Stream filestream, string file_ext = "xls")
|
|
{
|
|
List<ImportGiftOrderDto> result = new List<ImportGiftOrderDto>();
|
|
IWorkbook workBook = null;
|
|
|
|
switch (file_ext)
|
|
{
|
|
case ".xls":
|
|
workBook = new HSSFWorkbook(filestream);
|
|
break;
|
|
|
|
case ".xlsx":
|
|
workBook = new XSSFWorkbook(filestream);
|
|
break;
|
|
|
|
default: throw new ArgumentException("非法后缀");
|
|
}
|
|
|
|
var sheet = workBook.GetSheetAt(0);
|
|
var rownum = sheet.LastRowNum;
|
|
|
|
for (int i = 1; i <= rownum; i++)
|
|
{
|
|
try
|
|
{
|
|
var row = sheet.GetRow(i);
|
|
if (row == null)
|
|
break;
|
|
var s = row.Cells[1].RichStringCellValue;
|
|
if (string.IsNullOrEmpty(s.String)) continue;
|
|
|
|
ImportGiftOrderDto bill_Account = new ImportGiftOrderDto()
|
|
{
|
|
OrderId = row.Cells[0].ToString(),
|
|
ProductName = row.Cells[1].ToString(),
|
|
ProductCode = row.Cells[2].ToString(),
|
|
DeptName = row.Cells[3].ToString(),
|
|
Day = row.Cells[4].ToString()
|
|
};
|
|
|
|
result.Add(bill_Account);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error($"异常行:{i}", ex);
|
|
throw (new Exception($"异常行:{i}", ex));
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
} |