|
|
@@ -36,6 +36,10 @@ using System.Runtime.CompilerServices;
|
|
|
using MongoDB.Driver;
|
|
|
using Volo.Abp.Validation.Localization;
|
|
|
using Hangfire.Annotations;
|
|
|
+using System.Globalization;
|
|
|
+using MongoDB.Driver.Linq;
|
|
|
+using Bussiness.Model.SRM;
|
|
|
+using System.ComponentModel.DataAnnotations;
|
|
|
|
|
|
namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
@@ -110,6 +114,25 @@ namespace Business.ResourceExamineManagement
|
|
|
private readonly IMongoDB<ic_item_stock> _ic_item_stock;
|
|
|
private IRepository<ic_item_stock, long> _mysql_ic_item_stock;
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 物料工厂明细表
|
|
|
+ /// </summary>
|
|
|
+ private readonly IMongoDB<ic_factory_details> _ic_factory_details;
|
|
|
+ private IRepository<ic_factory_details, long> _mysql_ic_factory_details;
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 采购申请单
|
|
|
+ /// </summary>
|
|
|
+ private readonly IMongoDB<srm_pr_main> _srm_pr_main;
|
|
|
+ private IRepository<srm_pr_main, long> _mysql_srm_pr_main;
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 委外工单
|
|
|
+ /// </summary>
|
|
|
+ private readonly IMongoDB<mes_oorder> _mes_oorder;
|
|
|
+ private IRepository<mes_oorder, long> _mysql_mes_oorder;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 物料质检表
|
|
|
/// </summary>
|
|
|
@@ -165,6 +188,9 @@ namespace Business.ResourceExamineManagement
|
|
|
IMongoDB<ic_bom_child> ic_bom_child,
|
|
|
IMongoDB<ic_item_stock> ic_item_stock,
|
|
|
IMongoDB<ic_check> ic_check,
|
|
|
+ IMongoDB<ic_factory_details> ic_factory_details,
|
|
|
+ IMongoDB<mes_oorder> mes_oorder,
|
|
|
+ IMongoDB<srm_pr_main> srm_pr_main,
|
|
|
//IMongoDB<ic_substitute> ic_substitute,
|
|
|
//IMongoDB<ic_substitute_all> ic_substitute_all,
|
|
|
//IMongoDB<ic_substitute_all_dtl> ic_substitute_all_dtl,
|
|
|
@@ -178,7 +204,11 @@ namespace Business.ResourceExamineManagement
|
|
|
IRepository<mes_technique, long> mysql_mes_technique,
|
|
|
IRepository<crm_seorder, long> mysql_crm_seorder,
|
|
|
IRepository<crm_seorderentry, long> mysql_crm_seorderentry,
|
|
|
- IRepository<ic_item_stock, long> mysql_ic_item_stock
|
|
|
+ IRepository<ic_item_stock, long> mysql_ic_item_stock,
|
|
|
+ IRepository<ic_factory_details, long> mysql_ic_factory_details,
|
|
|
+ IRepository<mes_oorder, long> mysql_mes_oorder,
|
|
|
+ IRepository<srm_pr_main, long> mysql_srm_pr_main
|
|
|
+
|
|
|
|
|
|
)
|
|
|
{
|
|
|
@@ -191,6 +221,9 @@ namespace Business.ResourceExamineManagement
|
|
|
_ic_bom_child = ic_bom_child;
|
|
|
_ic_item_stock = ic_item_stock;
|
|
|
_ic_check = ic_check;
|
|
|
+ _ic_factory_details= ic_factory_details;
|
|
|
+ _mes_oorder= mes_oorder;
|
|
|
+ _srm_pr_main= srm_pr_main;
|
|
|
//_ic_substitute = ic_substitute;
|
|
|
//_ic_substitute_all = ic_substitute_all;
|
|
|
//_ic_substitute_all_dtl = ic_substitute_all_dtl;
|
|
|
@@ -205,6 +238,9 @@ namespace Business.ResourceExamineManagement
|
|
|
_crm_seorderentry = mysql_crm_seorderentry;
|
|
|
_mysql_mes_technique = mysql_mes_technique;
|
|
|
_mysql_ic_item_stock = mysql_ic_item_stock;
|
|
|
+ _mysql_ic_factory_details= mysql_ic_factory_details;
|
|
|
+ _mysql_mes_oorder= mysql_mes_oorder;
|
|
|
+ _mysql_srm_pr_main= mysql_srm_pr_main;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -397,7 +433,7 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 生成主工单
|
|
|
+ /// 生成工单
|
|
|
/// </summary>
|
|
|
/// <param name="BomNumber">Bom编码</param>
|
|
|
/// <param name="Quantity">需要数量</param>
|
|
|
@@ -406,8 +442,6 @@ namespace Business.ResourceExamineManagement
|
|
|
/// <returns></returns>
|
|
|
public async Task GenerateMorder(long seorderentry_id)
|
|
|
{
|
|
|
- //需要生成的物料,需要生产的数量,对应销售订单。
|
|
|
-
|
|
|
//1.库存、在制工单检查完成后 当前BOM需要自制时 产生工单。
|
|
|
|
|
|
//2.每一个销售订单行对应一个工单。
|
|
|
@@ -415,6 +449,8 @@ namespace Business.ResourceExamineManagement
|
|
|
var seorderentry = await _crm_seorderentry.FindAsync(x => x.Id == seorderentry_id);
|
|
|
//获取销售订单信息
|
|
|
var seorder = await _crm_seorder.FindAsync(x => x.Id == seorderentry.seorder_id);
|
|
|
+ //物料BOM
|
|
|
+ var ic_bom = _ic_bom.GetManyByCondition(x => x.bom_number == seorderentry.bom_number && x.tenant_id == seorderentry.tenant_id).Result.FirstOrDefault();
|
|
|
|
|
|
mes_morder mes_Morder = new mes_morder();
|
|
|
mes_Morder.GenerateNewId();
|
|
|
@@ -422,25 +458,39 @@ namespace Business.ResourceExamineManagement
|
|
|
//mes_Morder.morder_icitem_type
|
|
|
mes_Morder.work_order_type = "常规工单";
|
|
|
mes_Morder.morder_state = "初始";
|
|
|
- mes_Morder.morder_no = "";//TODO:编码规则暂时没有
|
|
|
+ mes_Morder.morder_no = string.Format("VMO{0}", DateTime.Now.ToString("yyyyMMddhhmmss"));//测试编码
|
|
|
mes_Morder.fms_number = seorderentry.fms_number;
|
|
|
mes_Morder.bom_number = seorderentry.bom_number;
|
|
|
mes_Morder.fmodel = seorderentry.specification;
|
|
|
- mes_Morder.moentry_startup_status = 1;
|
|
|
- mes_Morder.tenant_id = 0;
|
|
|
+ //最早的开工时间3天后、 最晚时间为订单承诺时间-采购提前期-质检提前期-入库提前期-发料提前期 =最晚开工时间 最早或最晚为系统建议开工日期
|
|
|
+ //根绝系统配置参数 取最早或者最晚开始日期
|
|
|
+ var StartDate = DateTime.Now.Date.AddDays(3);
|
|
|
+ mes_Morder.moentry_sys_stime = StartDate;
|
|
|
+ var ProductiveDate = ProductiveExamine(ic_bom.tech_id, (int)(seorderentry.qty.Value));
|
|
|
+ //系统建议完工日期为 开工日期+产能检查时间=完工日期
|
|
|
+ var Day = ProductiveDate.Result / (60 * 10); //返回的分钟除以十个小时得出工作天数;
|
|
|
+ mes_Morder.moentry_sys_etime = StartDate.AddDays((double)Day);
|
|
|
+ mes_Morder.morder_need_time = ProductiveDate.Result;
|
|
|
+ mes_Morder.moentry_startup_status = 0;
|
|
|
+ mes_Morder.tenant_id = seorderentry.tenant_id;
|
|
|
mes_Morder.product_code = seorderentry.item_number;
|
|
|
mes_Morder.product_name = seorderentry.item_name;
|
|
|
mes_Morder.project_name = seorder.project_name;
|
|
|
mes_Morder.planner_num = seorderentry.planner_no;
|
|
|
mes_Morder.planner_name = seorderentry.planner_name;
|
|
|
mes_Morder.morder_date = DateTime.Now.Date;
|
|
|
+ //TODO:目前没有取值位置
|
|
|
+ mes_Morder.moentry_prd = null;
|
|
|
+ mes_Morder.moentry_prdname = null;
|
|
|
+ mes_Morder.moentry_wrkc = null;
|
|
|
+ mes_Morder.moentry_wrkcname = null;
|
|
|
+ mes_Morder.picking_qty = 0;
|
|
|
//TODO:可删除主表字段
|
|
|
mes_Morder.unit = seorderentry.unit;
|
|
|
mes_Morder.morder_production_number = seorderentry.qty;
|
|
|
mes_Morder.need_number = seorderentry.qty;
|
|
|
mes_Morder.remaining_number = 0;
|
|
|
- await _mes_morder.InsertOne(mes_Morder);
|
|
|
-
|
|
|
+ //生成工单子表数据
|
|
|
mes_moentry mes_Moentry = new mes_moentry();
|
|
|
mes_Moentry.GenerateNewId();
|
|
|
mes_Moentry.moentry_moid = mes_Morder.Id;
|
|
|
@@ -452,9 +502,24 @@ namespace Business.ResourceExamineManagement
|
|
|
mes_Moentry.morder_production_number = seorderentry.qty;
|
|
|
mes_Moentry.need_number = seorderentry.qty;
|
|
|
mes_Moentry.remaining_number = 0;
|
|
|
-
|
|
|
- await _mes_moentry.InsertOne(mes_Moentry);
|
|
|
-
|
|
|
+ using (TransactionScope scope = new TransactionScope())
|
|
|
+ {
|
|
|
+ await _mes_morder.InsertOne(mes_Morder);
|
|
|
+ await _mes_moentry.InsertOne(mes_Moentry);
|
|
|
+ scope.Complete();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 将decimal转换成日期格式
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="date">yyyyMMddHHmmss</param>
|
|
|
+ /// <returns>yyyy-MM-dd HH:mm:ss</returns>
|
|
|
+ public static string TransDecimalToDateTime(string date)
|
|
|
+ {
|
|
|
+ DateTimeFormatInfo dtfi = new CultureInfo("zh-CN", false).DateTimeFormat;
|
|
|
+ DateTime dateTime = DateTime.Now;
|
|
|
+ DateTime.TryParseExact(date, "yyyyMMddHHmmss", dtfi, DateTimeStyles.None, out dateTime);
|
|
|
+ return dateTime.ToString("yyyy-MM-dd HH:mm:ss"); ;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 检查成品库存
|
|
|
@@ -470,9 +535,9 @@ namespace Business.ResourceExamineManagement
|
|
|
return false;
|
|
|
}
|
|
|
//物料BOM
|
|
|
- var ic_bom = _ic_bom.GetManyByCondition(x => x.bom_number == seorderentry.bom_number).Result.FirstOrDefault();
|
|
|
+ var ic_bom = _ic_bom.GetManyByCondition(x => x.bom_number == seorderentry.bom_number && x.tenant_id == seorderentry.tenant_id).Result.FirstOrDefault();
|
|
|
//物料库存表
|
|
|
- var ic_Item_Stocks = await _ic_item_stock.GetManyByCondition(x => x.icitem_id == ic_bom.icitem_id);
|
|
|
+ var ic_Item_Stocks = await _ic_item_stock.GetManyByCondition(x => x.icitem_id == ic_bom.icitem_id && x.tenant_id == seorderentry.tenant_id);
|
|
|
if (seorderentry.qty <= ic_Item_Stocks.Sum(x => x.sqty))
|
|
|
{
|
|
|
return true;
|
|
|
@@ -498,19 +563,19 @@ namespace Business.ResourceExamineManagement
|
|
|
//TODO:入参异常;
|
|
|
throw new NotImplementedException("BOM编码或需求数量不能为空!");
|
|
|
}
|
|
|
+ //获取销售订单信息
|
|
|
+ //var seorder = await _crm_seorder.FindAsync(x => x.Id == OrderId);
|
|
|
+ var seorderentry = await _crm_seorderentry.FindAsync(x => x.Id == seorderentry_id);
|
|
|
//根据Bom编码查询出对应工单并且状态不为完成、关闭,非委外工单。
|
|
|
//TODO:工单类型;
|
|
|
var morderList = await _mes_morder.GetManyByCondition(x => x.bom_number == bomNumber && (x.morder_state != "完成" || x.morder_state != "关闭"
|
|
|
- && x.morder_icitem_type != "相关委外工单") && x.IsDeleted == false);
|
|
|
+ && x.morder_icitem_type != "相关委外工单") && x.IsDeleted == false && x.tenant_id == seorderentry.tenant_id);
|
|
|
|
|
|
- //获取销售订单信息
|
|
|
- //var seorder = await _crm_seorder.FindAsync(x => x.Id == OrderId);
|
|
|
- var seorderentry = await _crm_seorderentry.FindAsync(x => x.Id == seorderentry_id);
|
|
|
//获取物料详情
|
|
|
- var mysql_ic_item = await _mysql_ic_item.FindAsync(x => x.number == bomNumber);
|
|
|
+ var mysql_ic_item = await _mysql_ic_item.FindAsync(x => x.number == bomNumber && x.tenant_id == seorderentry.tenant_id);
|
|
|
|
|
|
//工单已被占用后要与占用表关联查询...减去占用量后 剩下生产数量可供下个销售工单使用。
|
|
|
- var mes_mooccupyList = await _mes_mooccupy.GetManyByCondition(x => x.moo_state == 1 && x.IsDeleted == false);
|
|
|
+ var mes_mooccupyList = await _mes_mooccupy.GetManyByCondition(x => x.moo_state == 1 && x.IsDeleted == false && x.tenant_id == seorderentry.tenant_id);
|
|
|
|
|
|
//首先满足需求数量工单其次判断是否满足交付日期、当数量不满足时继续查找最早交付日期订单 工单数量累加。
|
|
|
//当前工单计划日期-1天 小于交付日期 && 计算生产数量-入库数据并且大于需求产品数量。
|
|
|
@@ -585,7 +650,7 @@ namespace Business.ResourceExamineManagement
|
|
|
mes_Mooccupy.moo_cbr = string.Empty;
|
|
|
//mes_Mooccupy.moo_ctime = ;
|
|
|
mes_Mooccupy.moo_creason = string.Empty;
|
|
|
- mes_Mooccupy.tenant_id = 0;//TODO:企业ID =集团 或公司ID
|
|
|
+ mes_Mooccupy.tenant_id = seorderentry.tenant_id;//取销售子表企业ID
|
|
|
return mes_Mooccupy;
|
|
|
}
|
|
|
/// <summary>
|
|
|
@@ -795,7 +860,7 @@ namespace Business.ResourceExamineManagement
|
|
|
|
|
|
//List<BomChildExamineDto> returnlist = new List<BomChildExamineDto>();
|
|
|
var dto = new BomChildExamineDto();
|
|
|
- var bom = bomlist.WhereIf(true, s => s.icitem_id == dtl.icitem_id).FirstOrDefault();
|
|
|
+ var bom = bomlist.WhereIf(true,s => s.icitem_id == dtl.icitem_id).FirstOrDefault();
|
|
|
var icitem = icitemlist.Find(s => s.Id == dtl.icitem_id);
|
|
|
if (icitem == null)
|
|
|
{
|
|
|
@@ -852,7 +917,7 @@ namespace Business.ResourceExamineManagement
|
|
|
returnlist = returnlist.OrderBy(s => s.num).ToList();
|
|
|
//获取当前工厂下物料库存数据
|
|
|
List<long> icitemIds = returnlist.Select(c => c.item_id).ToList();
|
|
|
- var stocklist = _ic_item_stock.GetManyByCondition(p=>p.factory_id == factoryid && icitemIds.Contains(p.icitem_id)).Result;
|
|
|
+ var stocklist = _ic_item_stock.GetManyByCondition(p => p.factory_id == factoryid && icitemIds.Contains(p.icitem_id)).Result;
|
|
|
//取当前订单的物料库存占用记录
|
|
|
var occupylist = _ic_item_stockoccupy.GetManyByCondition(p => p.bang_id == bangid && p.order_id == orderid).Result;
|
|
|
//计算剩余库存
|
|
|
@@ -1019,5 +1084,133 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //根据物料id获取物料3个提前期
|
|
|
+ private Task<List<ICItemLeadTimeDto>> GetLeadTime(List<BomChildExamineDto> returnlist,long factoryid)
|
|
|
+ {
|
|
|
+ //ToDo:企业Id
|
|
|
+ ProjectionDefinitionBuilder<ic_factory_details> project = new ProjectionDefinitionBuilder<ic_factory_details>();
|
|
|
+ return _ic_factory_details.Find(p => returnlist.Select(x => x.item_id).Contains(p.icitem_id) && p.factory_id == factoryid,
|
|
|
+ project.Include(p => p.icitem_id).Include(p => p.production_leadtime).Include(p => p.stock_leadtime).Include(p => p.transportation_leadtime)).Result.
|
|
|
+ Select(x => new ICItemLeadTimeDto { item_id = x.icitem_id,transportation_leadtime=x.transportation_leadtime,stock_leadtime=x.stock_leadtime,production_leadtime=x.production_leadtime }).AsQueryable<ICItemLeadTimeDto>().ToListAsync();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 生成委外工单
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="returnlist"></param>
|
|
|
+ /// <param name="factoryid"></param>
|
|
|
+ private void CreateMesOOder(List<BomChildExamineDto> returnlist, long factoryid)
|
|
|
+ {
|
|
|
+ List<mes_oorder> oOderList = new List<mes_oorder>();
|
|
|
+ foreach (var item in returnlist)
|
|
|
+ {
|
|
|
+ mes_oorder oOrder = new mes_oorder();
|
|
|
+ oOrder.GenerateNewId();
|
|
|
+ oOrder.oorder_no =getOrderNum("WW");//生产工单编号
|
|
|
+ oOrder.oorder_type = "委外工单";//生产工单类型
|
|
|
+ oOrder.oorder_date = DateTime.Now;//委外订单日期
|
|
|
+ oOrder.oorder_state = "已提交";//订单状态
|
|
|
+ oOrder.ooentry_prd = 10000;//生产组织
|
|
|
+ oOrder.ooentry_prdname = "1000";//生产组织名称
|
|
|
+ oOrder.ooentry_wrkc = 10000;//工作中心id
|
|
|
+ oOrder.ooentry_wrkcname = "10001";//工作中心名称
|
|
|
+ oOrder.planner_num = "wwww";//计划员工号
|
|
|
+ oOrder.planner_name = "qqq";//计划员名称
|
|
|
+ oOrder.ooentry_stime = DateTime.Now;//计划开工日期
|
|
|
+ oOrder.ooentry_etime = DateTime.Now;//计划完工日期
|
|
|
+ oOrder.product_code = "产品代码";//产品代码
|
|
|
+ oOrder.ffms_number = "1000";//fms旧料号
|
|
|
+ oOrder.product_name = "test";//产品名称
|
|
|
+ oOrder.specification_model ="";//规格型号
|
|
|
+ oOrder.bom_number = "";//bom编码
|
|
|
+ oOrder.unit ="";//单位
|
|
|
+ oOrder.morder_progress ="";//工单进度
|
|
|
+ oOrder.morder_production_number = 120;//工单生产数量(计划数量)
|
|
|
+ oOrder.need_number = 11;//需求数量
|
|
|
+ oOrder.remaining_number = 11;//剩余可用数量
|
|
|
+ oOrder.work_number = 11;//报工数量
|
|
|
+ oOrder.inspection_number = 11;//报检数量
|
|
|
+ oOrder.qualified_number = 22;//合格数量
|
|
|
+ oOrder.inventory_number = 22;//入库数量
|
|
|
+ oOrder.notice_qty = 22;//已开通知单数量
|
|
|
+ oOrder.moentry_on = 22;//启动状态
|
|
|
+ oOrder.start_time =DateTime.Now;//开始时间
|
|
|
+ oOrder.pause_time = DateTime.Now;//最近暂停时间
|
|
|
+ oOrder.restart_time = DateTime.Now;//最近重启时间
|
|
|
+ oOrder.project_name = "22";//项目名称
|
|
|
+ oOrder.sent_status = 22;//发料状态 1-待发料 2-已发料
|
|
|
+ oOrder.production_unit = "ge";//加工单位
|
|
|
+ oOrder.production_unit_code = "元";//加工单位编码
|
|
|
+ oOrder.need_icitem_status =1;//所需物料是否充足 1-充足 0-缺料
|
|
|
+ oOderList.Add(oOrder);
|
|
|
+ }
|
|
|
+ _mes_oorder.InsertMany(oOderList);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 生成采购申请单
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="returnlist"></param>
|
|
|
+ /// <param name="factoryid"></param>
|
|
|
+ /// <param name="orderType">1委外采购申请单,2采购申请单</param>
|
|
|
+ private void CreateSRMPR(List<BomChildExamineDto> returnlist, long factoryid,int orderType)
|
|
|
+ {
|
|
|
+ List<srm_pr_main> prList=new List<srm_pr_main>();
|
|
|
+ foreach(var item in returnlist)
|
|
|
+ {
|
|
|
+ srm_pr_main srm_Pr = new srm_pr_main();
|
|
|
+ srm_Pr.GenerateNewId();
|
|
|
+ srm_Pr.pr_billno = "";//pr单号
|
|
|
+ srm_Pr.pr_mono = "";//关联工单号
|
|
|
+ srm_Pr.entity_id = 1;//pr单号
|
|
|
+ srm_Pr.pr_purchaseid = 1001;//供应商id
|
|
|
+ srm_Pr.pr_purchasenumber = "10000";//供应商编码
|
|
|
+ srm_Pr.pr_purchasename = "1000";//供应商名称
|
|
|
+ srm_Pr.pr_purchaser = "10000";//采购员
|
|
|
+ srm_Pr.pr_purchaser_num = "10001";//采购员工号(采购信息表)
|
|
|
+ srm_Pr.pr_rqty = 20;//需求数量
|
|
|
+ srm_Pr.pr_aqty = 1000;//申请数量
|
|
|
+ srm_Pr.pr_sqty = 22;//建议数量
|
|
|
+ srm_Pr.icitem_id = 10001;//物料id
|
|
|
+ srm_Pr.icitem_name = "test111";//物料名称
|
|
|
+ srm_Pr.pr_order_type = 1000;//单据类型
|
|
|
+ srm_Pr.pr_ssend_date = DateTime.Now;//系统建议下单日期
|
|
|
+ srm_Pr.pr_sarrive_date = DateTime.Now;//系统建议到达日期(建议到货日期)
|
|
|
+ srm_Pr.pr_bsarrive_date = DateTime.Now;//采购员建议到货日期
|
|
|
+ srm_Pr.pr_oarrive_date = DateTime.Now;//订单到货日期
|
|
|
+ srm_Pr.pr_psend_date = DateTime.Now;//计划下单日期
|
|
|
+ srm_Pr.pr_parrive_date = DateTime.Now;//计划到达日期
|
|
|
+ srm_Pr.pr_rarrive_date = DateTime.Now;//需求到货日期
|
|
|
+ srm_Pr.pr_rparrive_date = DateTime.Now;//再计划到货日期
|
|
|
+ srm_Pr.pr_psend_date = DateTime.Now;//计划下单日期
|
|
|
+ srm_Pr.pr_pur_affirm_date = DateTime.Now;//采购确认到货日期
|
|
|
+ srm_Pr.pr_sysprice = 22;//系统价格(含税)
|
|
|
+ srm_Pr.pr_orderprice = 22;//订单价格(含税)
|
|
|
+ srm_Pr.pr_price = 22;//采购净价(不含税)
|
|
|
+ srm_Pr.pr_rate = 22;//税率
|
|
|
+ srm_Pr.pr_unit = "元";//单位
|
|
|
+ srm_Pr.state = 22;//状态
|
|
|
+ srm_Pr.old_apply_aqty = 22;//已申请数量
|
|
|
+ srm_Pr.pr_type = 22;//申请类型
|
|
|
+ srm_Pr.currencytype = 22;//币种
|
|
|
+ srm_Pr.secInv_ratio = 22;//安全库存触发采购比例
|
|
|
+ srm_Pr.remark = "元";//备注
|
|
|
+ srm_Pr.pr_rreason = "元";//拒绝原因
|
|
|
+ prList.Add(srm_Pr);
|
|
|
+ }
|
|
|
+ _srm_pr_main.InsertMany(prList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 生成订单编号 字母+年月日+8位随机数+时间戳
|
|
|
+ private string getOrderNum(string preCode)
|
|
|
+ {
|
|
|
+ string Dates = DateTime.Now.ToString("yyyyMMdd");//获取当前时间
|
|
|
+ Random Rdm = new Random(Guid.NewGuid().GetHashCode());//随机数
|
|
|
+ TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);//时间戳
|
|
|
+ string newts = Convert.ToInt64(ts.TotalMilliseconds).ToString();//时间戳
|
|
|
+ string new_orderNum = preCode + Dates + Rdm.Next(0, 100000000) + newts;
|
|
|
+ return new_orderNum;
|
|
|
+ }
|
|
|
}
|
|
|
}
|