diff --git a/BasicData/Tnb.BasicData.Entities/Consts/CodeTemplateConst.cs b/BasicData/Tnb.BasicData.Entities/Consts/CodeTemplateConst.cs
index 473334bb..d64fbec0 100644
--- a/BasicData/Tnb.BasicData.Entities/Consts/CodeTemplateConst.cs
+++ b/BasicData/Tnb.BasicData.Entities/Consts/CodeTemplateConst.cs
@@ -79,6 +79,21 @@ namespace Tnb.BasicData
/// 成品检验单号
///
public const string CHENGPINJIANYAN_CODE = "chengpinjianyan";
+
+ ///
+ /// 设备点巡检
+ ///
+ public const string SPOTINSPECTIONEXECUTIONSHEET_CODE = "spotInspectionExecutionSheet";
+
+ ///
+ /// /设备保养
+ ///
+ public const string MAINTENANCERECORDFIJIPROJECT_CODE = "maintenancerecordfijiproject";
+
+ ///
+ /// /模具保养
+ ///
+ public const string MOLDMAINTENANCE_CODE = "MoldMaintenance";
}
}
\ No newline at end of file
diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs
index 51b1443c..266380ca 100644
--- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs
+++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EqpMaintainRecordListOutput.cs
@@ -3,6 +3,7 @@ namespace Tnb.EquipMgr.Entities.Dto
public class EqpMaintainRecordListOutput
{
public string id { get; set; }
+ public string code { get; set; }
public string equip_id { get; set; }
public string equip_id_id { get; set; }
public string status { get; set; }
diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldMaintainRecordListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldMaintainRecordListOutput.cs
index 369b25fb..c9866f66 100644
--- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldMaintainRecordListOutput.cs
+++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldMaintainRecordListOutput.cs
@@ -3,6 +3,7 @@ namespace Tnb.EquipMgr.Entities.Dto
public class ToolMoldMaintainRecordListOutput
{
public string id { get; set; }
+ public string code { get; set; }
public string mold_id { get; set; }
public string mold_id_id { get; set; }
public string status { get; set; }
diff --git a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs
index a7bfc7e3..548e033c 100644
--- a/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs
+++ b/EquipMgr/Tnb.EquipMgr/EquMaintainRecordService.cs
@@ -82,6 +82,7 @@ namespace Tnb.EquipMgr
.Select((a, b, c, d,e) => new EqpMaintainRecordListOutput
{
id = a.id,
+ code = a.code,
equip_id = b.code + "/" + b.name,
equip_id_id = a.equip_id,
status = a.status,
diff --git a/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainRecordService.cs b/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainRecordService.cs
index a7e179e5..d452c4c3 100644
--- a/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainRecordService.cs
+++ b/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainRecordService.cs
@@ -82,6 +82,7 @@ namespace Tnb.EquipMgr
.Select((a, b, c, d,e) => new ToolMoldMaintainRecordListOutput
{
id = a.id,
+ code = a.code,
mold_id = b.mold_code + "/" + b.mold_name,
mold_id_id = a.mold_id,
status = a.status,
diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
index 3dce13ad..4f1bfa0c 100644
--- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
@@ -1318,7 +1318,7 @@ namespace Tnb.ProductionMgr
if (toolMaintainTemMoldH != null && toolMolds!=null)
{
- string code = DateTime.Now.Ticks.ToString();
+ string code = await _billRuleService.GetBillNumber(CodeTemplateConst.MOLDMAINTENANCE_CODE);
ToolMoldMaintainRecordH toolMoldMaintainRecordH = new ToolMoldMaintainRecordH()
{
id = SnowflakeIdHelper.NextId(),
@@ -2516,7 +2516,7 @@ namespace Tnb.ProductionMgr
erpRequestData.Add("pk_org_v",erpOrg.pk_org_v);
erpRequestData.Add("vtrantypecode","55A4-01");
erpRequestData.Add("vtrantypeid","0001A11000000002LVX8");
- erpRequestData.Add("vdef1",null);
+ erpRequestData.Add("vdef1",null);//todo 倒冲日期
erpRequestData.Add("vdef2",null);
erpRequestData.Add("report_id",report.id);
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
index 74f11399..4abb990f 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
@@ -709,5 +709,26 @@
/// 成品提报
///
public const string bipwarehouseid_cp = "1001A1100000001MA8ME";
+
+
+ ///
+ /// 四厂区生产部id
+ ///
+ public const string sichangqushengchanbu_id = "1001A1100000001RLNAD";
+
+ ///
+ /// 四厂区生产部id
+ ///
+ public const string sichangqushengchanbu_vid = "0001A1100000000BUMTN";
+
+ ///
+ /// 四厂区仓库id
+ ///
+ public const string sichangqucangku_id = "1001A1100000001JFOOL";
+
+ ///
+ /// 四厂区仓库vid
+ ///
+ public const string sichangqucangku_vid = "0001A1100000000AOMIG";
}
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs
index 32b943ee..270979a1 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs
@@ -357,12 +357,13 @@ namespace Tnb.WarehouseMgr
List allInstockDetails = await _db.Queryable().Where(it => it.prd_instockD_id == wmsPrdInstockD.id).ToListAsync();
List materialIds = Arrays.AsList(instock.material_id);
- List unitCodes = allInstockDetails.Select(x => x.unit_id).Distinct().ToList();
- List unitDatas = await _db.Queryable()
- .LeftJoin((x, y) => x.Id == y.DictionaryTypeId)
- .Where((x, y) => x.EnCode == DictConst.MeasurementUnit && unitCodes.Contains(y.EnCode))
- .Select((x, y) => y)
- .ToListAsync();
+ List unitIds = allInstockDetails.Select(x => x.unit_id).Distinct().ToList();
+ // List unitCodes = allInstockDetails.Select(x => x.unit_id).Distinct().ToList();
+ // List unitDatas = await _db.Queryable()
+ // .LeftJoin((x, y) => x.Id == y.DictionaryTypeId)
+ // .Where((x, y) => x.EnCode == DictConst.MeasurementUnit && unitCodes.Contains(y.EnCode))
+ // .Select((x, y) => y)
+ // .ToListAsync();
List erpWarehouserelaHs = await _db.Queryable().Where(x=>x.id!=null).ToListAsync();
string userId = instock?.create_id ?? WmsWareHouseConst.AdministratorUserId;
@@ -372,7 +373,8 @@ namespace Tnb.WarehouseMgr
tableIds.Add(WmsWareHouseConst.AdministratorOrgId);
tableIds.AddRange(materialIds);
tableIds.Add(supplierId);
- tableIds.AddRange(unitDatas.Select(x => x.Id).ToList());
+ // tableIds.AddRange(unitDatas.Select(x => x.Id).ToList());
+ tableIds.AddRange(unitIds);
List erpExtendFields = await _db.Queryable().Where(x => tableIds.Contains(x.table_id)).ToListAsync();
string erpCreateId = erpExtendFields.Find(x => x.table_id == userId)?.user_id ?? "";
@@ -420,7 +422,7 @@ namespace Tnb.WarehouseMgr
["crowno"] = (allInstockDetails.FindIndex(x => x.id == item.id) + 1) * 10,
["csourcebillhid"] = prdReport?.erp_pk_wr ?? "",
["csourcebillbid"] = prdReport?.erp_pk_wr_product ?? "",
- ["cunitid"] = erpExtendFields.Find(x => x.table_id == (unitDatas.Find(x => x.EnCode == item.unit_id)?.Id ?? ""))?.cunitid ?? "",
+ ["cunitid"] = erpExtendFields.Find(x => x.table_id == item.unit_id)?.cunitid ?? "",
["cvendorid"] = erpExtendFields.Find(x => x.table_id == supplierId)?.supplier_id ?? "",
["cvendorvid"] = erpExtendFields.Find(x => x.table_id == supplierId)?.supplier_vid ?? "",
["dbizdate"] = instock.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"),
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatOutstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatOutstockService.cs
index ca437876..4e5e8e94 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatOutstockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatOutstockService.cs
@@ -1,239 +1,340 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Aop.Api.Domain;
-using JNPF.Common.Core.Manager;
-using JNPF.Common.Dtos.VisualDev;
-using JNPF.Common.Enums;
-using JNPF.FriendlyException;
-using JNPF.Systems.Interfaces.System;
-using JNPF.VisualDev;
-using JNPF.VisualDev.Interfaces;
-using Mapster;
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Logging;
-using Newtonsoft.Json.Linq;
-using NPOI.HPSF;
-using Senparc.Weixin.Work.AdvancedAPIs.OaDataOpen;
-using SqlSugar;
-using Tnb.BasicData.Entities;
-using Tnb.WarehouseMgr.Entities;
-using Tnb.WarehouseMgr.Entities.Attributes;
-using Tnb.WarehouseMgr.Entities.Consts;
-using Tnb.WarehouseMgr.Entities.Dto;
-using Tnb.WarehouseMgr.Entities.Dto.Inputs;
-using Tnb.WarehouseMgr.Entities.Entity;
-using Tnb.WarehouseMgr.Interfaces;
-
-namespace Tnb.WarehouseMgr
-{
- ///
- /// 材料出库单
- ///
- [OverideVisualDev(ModuleConsts.MODULE_WmsRawmatOutstock_ID)]
- [ServiceModule(BizTypeId)]
- public class WmsRawmatOutstockService : BaseWareHouseService
- {
- private const string BizTypeId = WmsWareHouseConst.BIZTYPE_WmsRawmatOutstock_ID;
- private readonly ISqlSugarClient _db;
- private readonly IUserManager _userManager;
- private readonly IBillRullService _billRullService;
- private readonly IRunService _runService;
- private readonly IVisualDevService _visualDevService;
- private readonly IWmsPDAScanInStockService _wmsPDAScanInStock;
- private readonly IWareHouseService _wareHouseService;
- public WmsRawmatOutstockService(
- ISqlSugarRepository repository,
- IUserManager userManager,
- IBillRullService billRullService,
- IRunService runService,
- IVisualDevService visualDevService,
- IWmsPDAScanInStockService wmsPDAScanInStock,
- IWareHouseService wareHouseService)
- {
- _db = repository.AsSugarClient();
- _userManager = userManager;
- _billRullService = billRullService;
- _runService = runService;
- _visualDevService = visualDevService;
- _wmsPDAScanInStock = wmsPDAScanInStock;
- _wareHouseService = wareHouseService;
-
- OverideFuncs.GetDetailsAsync = GetDetailsAsync;
- }
-
-
- public override async Task ModifyAsync(WareHouseUpInput input)
- {
- if (input == null)
- {
- throw new ArgumentNullException(nameof(input));
- }
-
- }
-
- [NonAction]
- private async Task GetDetailsAsync(string id)
- {
- try
- {
- return await Task.FromResult(_db.Queryable().Where(r => r.bill_id == id).ToList());
- }
- catch (Exception ex)
- {
- return Task.FromResult(ex);
- }
- }
-
- ///
- /// 下发
- ///
- ///
- ///
- ///
- [HttpPost, NonUnify, AllowAnonymous]
- public async Task Distribute(RawmatOutstockInput input)
- {
- try
- {
- await _s_taskExecuteSemaphore_YCLOutstock.WaitAsync();
- if (string.IsNullOrEmpty(input.source_id))
- {
- throw new AppFriendlyException("来源单据id不可为空", 500);
- }
- if (input.carrys.Count == 0)
- {
- throw new AppFriendlyException("至少选择一个载具", 500);
- }
-
- WmsRawmatOutstockD wmsRawmatOutstockD = await _db.Queryable().FirstAsync(it => it.id == input.source_id);
- WmsRawmatOutstockH wmsRawmatOutstockH = await _db.Queryable().FirstAsync(it => it.id == wmsRawmatOutstockD.bill_id);
-
- List _items = await _db.Queryable().Where(r => input.carrys.Select(c => c.carry_code).Contains(r.carry_code)).ToListAsync();
-
- List wmsCarryCodes = await _db.Queryable().Where(r => _items.Select(c => c.id).Contains(r.carry_id)
- && r.material_id == wmsRawmatOutstockD.material_id && r.code_batch == wmsRawmatOutstockD.batchno).ToListAsync();
-
- List items = new List();
-
- foreach (var carry in input.carrys.Select(c => c.carry_code))
- {
- items.Add(_items.Where(r => r.carry_code == carry).First());
- }
-
- foreach (var item in items)
- {
- if (item.is_lock == 1)
- {
- throw new AppFriendlyException($"载具{item.carry_code}已锁定", 500);
- }
- BasLocation carrryLoc = await _db.Queryable().Where(r => r.id == item.location_id).FirstAsync();
- if (carrryLoc == null || carrryLoc.is_type != "0")
- {
- throw new Exception($"托盘{item.carry_code}已经不在存储库位中,不能出库!");
- }
- }
-
- decimal? sign_qty = 0;
-
- decimal qty = wmsCarryCodes.Sum(c => c.codeqty);
- if (wmsRawmatOutstockD.actual_outstock_qty + qty > wmsRawmatOutstockD.qty)
- {
- // 最后一个托盘的数量
- decimal lastCarryQty = wmsCarryCodes.Where(r => r.carry_id == items[items.Count - 1].id).Sum(r => r.codeqty);
- // 如果最后一个托盘数量小于超出的出库数量
- if (lastCarryQty < wmsRawmatOutstockD.actual_outstock_qty + qty - wmsRawmatOutstockD.qty)
- {
- throw new AppFriendlyException($"本次出库数量{qty}已超过可出库数量{wmsRawmatOutstockD.qty - wmsRawmatOutstockD.actual_outstock_qty} 且无需选择{items[items.Count - 1].carry_code}", 500);
- }
- // 签收数量
- sign_qty = lastCarryQty - (wmsRawmatOutstockD.actual_outstock_qty + qty - wmsRawmatOutstockD.qty);
- }
-
- await _db.Ado.BeginTranAsync();
-
- List endLocations = new List();
-
- endLocations = _db.Queryable().Where(r => _wareHouseService.GetFloor1YCLDBOutstockLocation().Contains(r.id) && r.is_lock == 0 && r.is_use == "0")
- .OrderBy("is_lock, task_nums, location_code").ToList();
-
- if (endLocations.Count() < items.Count)
- {
- throw new AppFriendlyException($@"可用的终点库位数量为{endLocations.Count()}个 下发数量为{items.Count}个 请检查终点库位的锁定和占用状态", 500);
- }
-
- foreach (var wmsCarryH in items)
- {
- BasLocation startLocation = await _db.Queryable().Where(r => r.id == wmsCarryH.location_id).FirstAsync();
-
- BasLocation endLocation = null;
-
- endLocation = await _db.Queryable().Where(r => _wareHouseService.GetFloor1YCLDBOutstockLocation().Contains(r.id) && r.is_lock == 0 && r.is_use == "0").OrderBy("is_lock, task_nums, location_code").FirstAsync();
-
- if (endLocation == null)
- {
- throw new AppFriendlyException($@"没有可用的终点库位!请检查终点库位的锁定和占用状态", 500);
- }
-
- WmsRawmatOutstockC wmsRawmatOutstockC = new WmsRawmatOutstockC();
- wmsRawmatOutstockC.bill_id = wmsRawmatOutstockH.id;
- wmsRawmatOutstockC.mat_bill_id = wmsRawmatOutstockD.id;
- wmsRawmatOutstockC.carry_id = wmsCarryH.id;
- wmsRawmatOutstockC.carry_code = wmsCarryH.carry_code;
- wmsRawmatOutstockC.create_id = input.create_id;
- wmsRawmatOutstockC.create_time = DateTime.Now;
- wmsRawmatOutstockC.startlocation_id = startLocation.id;
- wmsRawmatOutstockC.startlocation_code = startLocation.location_code;
- wmsRawmatOutstockC.endlocation_id = endLocation.id;
- wmsRawmatOutstockC.endlocation_code = endLocation.location_code;
- decimal carryQty = wmsCarryCodes.Where(r => r.carry_id == wmsCarryH.id).Sum(r => r.codeqty);
- wmsRawmatOutstockC.qty = carryQty;
- wmsRawmatOutstockC.sign_qty = wmsCarryH.id == items[items.Count - 1].id && sign_qty > 0 ? sign_qty : carryQty;
-
- await _db.Insertable(wmsRawmatOutstockC).ExecuteCommandAsync();
-
- CommonCreatePretaskInput commonCreatePretaskInput = new CommonCreatePretaskInput();
- commonCreatePretaskInput.startlocation_id = startLocation.id;
- commonCreatePretaskInput.endlocation_id = endLocation.id;
- commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID;
- commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WmsRawmatOutstock_ID;
- commonCreatePretaskInput.source_id = input.source_id;
- commonCreatePretaskInput.carry_id = wmsCarryH.id;
- commonCreatePretaskInput.carry_code = wmsCarryH.carry_code;
- commonCreatePretaskInput.isExcuteMission = false;
-
- Entities.Dto.Outputs.Result res = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput, _db);
-
- if (res.code != HttpStatusCode.OK)
- {
- Logger.LogInformation($@"生成预任务失败");
- throw new AppFriendlyException($@"生成预任务失败", 500);
- }
- }
-
- // 更新子表已下发数量
- await _db.Updateable().SetColumns(r => r.actual_outstock_qty == r.actual_outstock_qty + qty).Where(r => r.id == input.source_id).ExecuteCommandAsync();
-
- await _db.Ado.CommitTranAsync();
- }
- catch (Exception ex)
- {
- await _db.Ado.RollbackTranAsync();
- Logger.LogError("【Distribute】" + ex.Message);
- Logger.LogError("【Distribute】" + ex.StackTrace);
- return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
- }
- finally
- {
- _ = _s_taskExecuteSemaphore_YCLOutstock.Release();
- InvokeGenPretaskExcute();
- }
-
- return await ToApiResult(HttpStatusCode.OK, "成功");
- }
-
- }
-}
+// using System;
+// using System.Collections.Generic;
+// using System.Linq;
+// using System.Text;
+// using System.Threading.Tasks;
+// using Aop.Api.Domain;
+// using JNPF.Common.Core.Manager;
+// using JNPF.Common.Dtos.VisualDev;
+// using JNPF.Common.Enums;
+// using JNPF.Common.Security;
+// using JNPF.FriendlyException;
+// using JNPF.Systems.Entitys.System;
+// using JNPF.Systems.Interfaces.System;
+// using JNPF.VisualDev;
+// using JNPF.VisualDev.Interfaces;
+// using Mapster;
+// using Microsoft.AspNetCore.Authorization;
+// using Microsoft.AspNetCore.Mvc;
+// using Microsoft.Extensions.Logging;
+// using Newtonsoft.Json;
+// using Newtonsoft.Json.Linq;
+// using NPOI.HPSF;
+// using Senparc.Weixin.Work.AdvancedAPIs.OaDataOpen;
+// using SqlSugar;
+// using Tnb.BasicData.Entities;
+// using Tnb.WarehouseMgr.Entities;
+// using Tnb.WarehouseMgr.Entities.Attributes;
+// using Tnb.WarehouseMgr.Entities.Consts;
+// using Tnb.WarehouseMgr.Entities.Dto;
+// using Tnb.WarehouseMgr.Entities.Dto.Inputs;
+// using Tnb.WarehouseMgr.Entities.Entity;
+// using Tnb.WarehouseMgr.Interfaces;
+// using Tnb.ProductionMgr.Entities.Entity;
+// using Tnb.BasicData;
+//
+// namespace Tnb.WarehouseMgr
+// {
+// ///
+// /// 材料出库单
+// ///
+// [OverideVisualDev(ModuleConsts.MODULE_WmsRawmatOutstock_ID)]
+// [ServiceModule(BizTypeId)]
+// public class WmsRawmatOutstockService : BaseWareHouseService
+// {
+// private const string BizTypeId = WmsWareHouseConst.BIZTYPE_WmsRawmatOutstock_ID;
+// private readonly ISqlSugarClient _db;
+// private readonly IUserManager _userManager;
+// private readonly IBillRullService _billRullService;
+// private readonly IRunService _runService;
+// private readonly IVisualDevService _visualDevService;
+// private readonly IWmsPDAScanInStockService _wmsPDAScanInStock;
+// private readonly IWareHouseService _wareHouseService;
+// public WmsRawmatOutstockService(
+// ISqlSugarRepository repository,
+// IUserManager userManager,
+// IBillRullService billRullService,
+// IRunService runService,
+// IVisualDevService visualDevService,
+// IWmsPDAScanInStockService wmsPDAScanInStock,
+// IWareHouseService wareHouseService)
+// {
+// _db = repository.AsSugarClient();
+// _userManager = userManager;
+// _billRullService = billRullService;
+// _runService = runService;
+// _visualDevService = visualDevService;
+// _wmsPDAScanInStock = wmsPDAScanInStock;
+// _wareHouseService = wareHouseService;
+//
+// OverideFuncs.GetDetailsAsync = GetDetailsAsync;
+// }
+//
+//
+// public override async Task ModifyAsync(WareHouseUpInput input)
+// {
+// if (input == null)
+// {
+// throw new ArgumentNullException(nameof(input));
+// }
+//
+// WmsRawmatOutstockD wmsRawmatOutstockD = await _db.Queryable().SingleAsync(x=>x.id==input.requireId);
+// WmsRawmatOutstockH wmsRawmatOutstockH = await _db.Queryable().SingleAsync(x=>x.id==wmsRawmatOutstockD.bill_id);
+// List wmsCarryCodes = await _db.Queryable()
+// .Where(r => r.carry_id == input.wmsDistaskH.carry_id)
+// .Where(r => r.material_id == wmsRawmatOutstockD.material_id && r.code_batch == wmsRawmatOutstockD.batchno)
+// .ToListAsync();
+//
+// decimal qty = wmsCarryCodes.Sum(r => r.codeqty);
+//
+// List unitCodes = wmsCarryCodes.Select(x => x.unit_id).Distinct().ToList();
+// List materialIds = wmsCarryCodes.Select(x => x.material_id).ToList();
+// List unitDatas = await _db.Queryable()
+// .LeftJoin((x, y) => x.Id == y.DictionaryTypeId)
+// .Where((x, y) => x.EnCode == DictConst.MeasurementUnit && unitCodes.Contains(y.EnCode))
+// .Select((x, y) => y)
+// .ToListAsync();
+//
+// string supplierId = WmsWareHouseConst.TIANYIGONGYINGSHANG_ID;
+// List tableIds = new List();
+// tableIds.Add(WmsWareHouseConst.AdministratorOrgId);
+// tableIds.AddRange(materialIds);
+// tableIds.Add(supplierId);
+// tableIds.AddRange(unitDatas.Select(x => x.Id).ToList());
+//
+// List erpExtendFields = await _db.Queryable().Where(x => tableIds.Contains(x.table_id)).ToListAsync();
+// string userId = wmsRawmatTransferoutstockH.create_id;
+// string erpCreateId = erpExtendFields.Find(x => x.table_id == userId)?.user_id ?? "";
+// ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (WmsWareHouseConst.AdministratorOrgId));
+// string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+// List wmsErpWarehouserelaHs = await _db.Queryable().Where(x=>!SqlFunc.IsNullOrEmpty(x.id)).ToListAsync();
+//
+// List> requestData = new List>();
+// Dictionary erpRequestData = new Dictionary();
+// erpRequestData.Add("billmaker", erpCreateId);
+// erpRequestData.Add("ccostdomainoid", null);
+// erpRequestData.Add("cdrawcalbodyoid", erpOrg.pk_org);
+// erpRequestData.Add("cdrawcalbodyvid", erpOrg.pk_org_v);
+//
+// erpRequestData.Add("corpoid", erpOrg.corpoid);
+// erpRequestData.Add("corpvid", erpOrg.corpvid);
+// erpRequestData.Add("cdptid","1001A1100000001JFOPQ");//部门先写死
+// erpRequestData.Add("cdptvid","0001A1100000000AOMIQ");//部门先写死
+// erpRequestData.Add("cotherdptid","1001A1100000001JFOPQ");//部门先写死
+// erpRequestData.Add("cotherdptvid","0001A1100000000AOMIQ");//部门先写死
+// erpRequestData.Add("creationtime", nowStr);
+// erpRequestData.Add("creator", erpCreateId);
+// erpRequestData.Add("ctrantypeid", "0001H11000000000D32A");//先写死
+// erpRequestData.Add("cwarehouseid", outWhid);//先写死
+// erpRequestData.Add("dbilldate", wmsRawmatTransferoutstockH.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"));
+// erpRequestData.Add("dmakedate", nowStr);
+// erpRequestData.Add("dshldarrivedate", nowStr);
+// erpRequestData.Add("dshlddiliverdate", nowStr);
+// erpRequestData.Add("fbillflag", 1);
+// erpRequestData.Add("isbackdeliver", false);
+// erpRequestData.Add("ntotalnum", qty);
+// erpRequestData.Add("pk_org", erpOrg.pk_org);
+// erpRequestData.Add("pk_org_v", erpOrg.pk_org_v);
+// erpRequestData.Add("pk_group", erpOrg.pk_group);
+// erpRequestData.Add("vbillcode", wmsRawmatTransferoutstockH.bill_code);
+// erpRequestData.Add("vtrantypecode", "4Y-01");//先写死
+//
+// List> erpRequestDataDetails = new List>();
+// foreach(var item in wmsCarryCodes)
+// {
+// // 出库数量wmsMaterialSignD.sign_qty
+// erpRequestDataDetails.Add(new Dictionary()
+// {
+// ["cmaterialoid"] = erpExtendFields.Find(x => x.table_id == item.material_id)?.cmaterialoid ?? "",
+// ["cmaterialvid"] = erpExtendFields.Find(x => x.table_id == item.material_id)?.cmaterialvid ?? "",
+// ["corpoid"] = erpOrg.corpoid,
+// ["corpvid"] = erpOrg.corpvid,
+// ["crowno"] = (wmsCarryCodes.FindIndex(x => x.id == item.id) + 1) * 10,
+// ["cunitid"] = erpExtendFields.Find(x => x.table_id == (unitDatas.Find(x => x.EnCode == item.unit_id)?.Id ?? ""))?.cunitid ?? "",
+// ["nnum"] = item.codeqty,
+// ["nshouldnum"] = item.codeqty,
+// ["pk_group"] = erpOrg.pk_group,
+// ["pk_org"] = erpOrg.pk_org,
+// ["pk_org_v"] = erpOrg.pk_org_v,
+// ["vbatchcode"] = item.code_batch,
+//
+// });
+// }
+// erpRequestData.Add("dtls", erpRequestDataDetails);
+// requestData.Add(erpRequestData);
+// BasFactoryConfig config = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL);
+// ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord();
+// thirdWebapiRecord.id = SnowflakeIdHelper.NextId();
+// thirdWebapiRecord.third_name = WmsWareHouseConst.BIP;
+// thirdWebapiRecord.name = "材料出库单(自制)";
+// thirdWebapiRecord.method = "POST";
+// thirdWebapiRecord.url = config.value + "uapws/rest/materialOut/self/save";
+// // thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/transIn/save";
+// thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
+// thirdWebapiRecord.create_time = DateTime.Now;
+// await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
+//
+// }
+//
+// [NonAction]
+// private async Task GetDetailsAsync(string id)
+// {
+// try
+// {
+// return await Task.FromResult(_db.Queryable().Where(r => r.bill_id == id).ToList());
+// }
+// catch (Exception ex)
+// {
+// return Task.FromResult(ex);
+// }
+// }
+//
+// ///
+// /// 下发
+// ///
+// ///
+// ///
+// ///
+// [HttpPost, NonUnify, AllowAnonymous]
+// public async Task Distribute(RawmatOutstockInput input)
+// {
+// try
+// {
+// await _s_taskExecuteSemaphore_YCLOutstock.WaitAsync();
+// if (string.IsNullOrEmpty(input.source_id))
+// {
+// throw new AppFriendlyException("来源单据id不可为空", 500);
+// }
+// if (input.carrys.Count == 0)
+// {
+// throw new AppFriendlyException("至少选择一个载具", 500);
+// }
+//
+// WmsRawmatOutstockD wmsRawmatOutstockD = await _db.Queryable().FirstAsync(it => it.id == input.source_id);
+// WmsRawmatOutstockH wmsRawmatOutstockH = await _db.Queryable().FirstAsync(it => it.id == wmsRawmatOutstockD.bill_id);
+//
+// List _items = await _db.Queryable().Where(r => input.carrys.Select(c => c.carry_code).Contains(r.carry_code)).ToListAsync();
+//
+// List wmsCarryCodes = await _db.Queryable().Where(r => _items.Select(c => c.id).Contains(r.carry_id)
+// && r.material_id == wmsRawmatOutstockD.material_id && r.code_batch == wmsRawmatOutstockD.batchno).ToListAsync();
+//
+// List items = new List();
+//
+// foreach (var carry in input.carrys.Select(c => c.carry_code))
+// {
+// items.Add(_items.Where(r => r.carry_code == carry).First());
+// }
+//
+// foreach (var item in items)
+// {
+// if (item.is_lock == 1)
+// {
+// throw new AppFriendlyException($"载具{item.carry_code}已锁定", 500);
+// }
+// BasLocation carrryLoc = await _db.Queryable().Where(r => r.id == item.location_id).FirstAsync();
+// if (carrryLoc == null || carrryLoc.is_type != "0")
+// {
+// throw new Exception($"托盘{item.carry_code}已经不在存储库位中,不能出库!");
+// }
+// }
+//
+// decimal? sign_qty = 0;
+//
+// decimal qty = wmsCarryCodes.Sum(c => c.codeqty);
+// if (wmsRawmatOutstockD.actual_outstock_qty + qty > wmsRawmatOutstockD.qty)
+// {
+// // 最后一个托盘的数量
+// decimal lastCarryQty = wmsCarryCodes.Where(r => r.carry_id == items[items.Count - 1].id).Sum(r => r.codeqty);
+// // 如果最后一个托盘数量小于超出的出库数量
+// if (lastCarryQty < wmsRawmatOutstockD.actual_outstock_qty + qty - wmsRawmatOutstockD.qty)
+// {
+// throw new AppFriendlyException($"本次出库数量{qty}已超过可出库数量{wmsRawmatOutstockD.qty - wmsRawmatOutstockD.actual_outstock_qty} 且无需选择{items[items.Count - 1].carry_code}", 500);
+// }
+// // 签收数量
+// sign_qty = lastCarryQty - (wmsRawmatOutstockD.actual_outstock_qty + qty - wmsRawmatOutstockD.qty);
+// }
+//
+// await _db.Ado.BeginTranAsync();
+//
+// List endLocations = new List();
+//
+// endLocations = _db.Queryable().Where(r => _wareHouseService.GetFloor1YCLDBOutstockLocation().Contains(r.id) && r.is_lock == 0 && r.is_use == "0")
+// .OrderBy("is_lock, task_nums, location_code").ToList();
+//
+// if (endLocations.Count() < items.Count)
+// {
+// throw new AppFriendlyException($@"可用的终点库位数量为{endLocations.Count()}个 下发数量为{items.Count}个 请检查终点库位的锁定和占用状态", 500);
+// }
+//
+// foreach (var wmsCarryH in items)
+// {
+// BasLocation startLocation = await _db.Queryable().Where(r => r.id == wmsCarryH.location_id).FirstAsync();
+//
+// BasLocation endLocation = null;
+//
+// endLocation = await _db.Queryable().Where(r => _wareHouseService.GetFloor1YCLDBOutstockLocation().Contains(r.id) && r.is_lock == 0 && r.is_use == "0").OrderBy("is_lock, task_nums, location_code").FirstAsync();
+//
+// if (endLocation == null)
+// {
+// throw new AppFriendlyException($@"没有可用的终点库位!请检查终点库位的锁定和占用状态", 500);
+// }
+//
+// WmsRawmatOutstockC wmsRawmatOutstockC = new WmsRawmatOutstockC();
+// wmsRawmatOutstockC.bill_id = wmsRawmatOutstockH.id;
+// wmsRawmatOutstockC.mat_bill_id = wmsRawmatOutstockD.id;
+// wmsRawmatOutstockC.carry_id = wmsCarryH.id;
+// wmsRawmatOutstockC.carry_code = wmsCarryH.carry_code;
+// wmsRawmatOutstockC.create_id = input.create_id;
+// wmsRawmatOutstockC.create_time = DateTime.Now;
+// wmsRawmatOutstockC.startlocation_id = startLocation.id;
+// wmsRawmatOutstockC.startlocation_code = startLocation.location_code;
+// wmsRawmatOutstockC.endlocation_id = endLocation.id;
+// wmsRawmatOutstockC.endlocation_code = endLocation.location_code;
+// decimal carryQty = wmsCarryCodes.Where(r => r.carry_id == wmsCarryH.id).Sum(r => r.codeqty);
+// wmsRawmatOutstockC.qty = carryQty;
+// wmsRawmatOutstockC.sign_qty = wmsCarryH.id == items[items.Count - 1].id && sign_qty > 0 ? sign_qty : carryQty;
+//
+// await _db.Insertable(wmsRawmatOutstockC).ExecuteCommandAsync();
+//
+// CommonCreatePretaskInput commonCreatePretaskInput = new CommonCreatePretaskInput();
+// commonCreatePretaskInput.startlocation_id = startLocation.id;
+// commonCreatePretaskInput.endlocation_id = endLocation.id;
+// commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID;
+// commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WmsRawmatOutstock_ID;
+// commonCreatePretaskInput.source_id = input.source_id;
+// commonCreatePretaskInput.carry_id = wmsCarryH.id;
+// commonCreatePretaskInput.carry_code = wmsCarryH.carry_code;
+// commonCreatePretaskInput.isExcuteMission = false;
+//
+// Entities.Dto.Outputs.Result res = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput, _db);
+//
+// if (res.code != HttpStatusCode.OK)
+// {
+// Logger.LogInformation($@"生成预任务失败");
+// throw new AppFriendlyException($@"生成预任务失败", 500);
+// }
+// }
+//
+// // 更新子表已下发数量
+// await _db.Updateable().SetColumns(r => r.actual_outstock_qty == r.actual_outstock_qty + qty).Where(r => r.id == input.source_id).ExecuteCommandAsync();
+//
+// await _db.Ado.CommitTranAsync();
+// }
+// catch (Exception ex)
+// {
+// await _db.Ado.RollbackTranAsync();
+// Logger.LogError("【Distribute】" + ex.Message);
+// Logger.LogError("【Distribute】" + ex.StackTrace);
+// return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
+// }
+// finally
+// {
+// _ = _s_taskExecuteSemaphore_YCLOutstock.Release();
+// InvokeGenPretaskExcute();
+// }
+//
+// return await ToApiResult(HttpStatusCode.OK, "成功");
+// }
+//
+// }
+// }
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsSterilizationInstockHService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsSterilizationInstockHService.cs
index 31d0cba5..c269b076 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsSterilizationInstockHService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsSterilizationInstockHService.cs
@@ -69,15 +69,34 @@ namespace Tnb.WarehouseMgr
BasLocation endLocation = await _db.Queryable().Where(r => r.id == input.wmsDistaskH.endlocation_id).FirstAsync();
string outWhid = "";
+ string outDeptid = "";
+ string outDeptvid = "";
+ string inDeptid = "";
+ string inDeptvid = "";
+ string tranTypeid = "";
+ string tranTypecode = "";
// 生产入库(灭菌完成) 仓库传 1001A1100000001MA8KP
if (endLocation.wh_id == WmsWareHouseConst.WAREHOUSE_MJC_ID)
{
outWhid = WmsWareHouseConst.bipwarehouseid_bz;
+ outDeptid = WmsWareHouseConst.sichangqushengchanbu_id;
+ outDeptvid = WmsWareHouseConst.sichangqushengchanbu_vid;
+ inDeptid = WmsWareHouseConst.sichangqucangku_id;
+ inDeptvid = WmsWareHouseConst.sichangqucangku_vid;
+ tranTypeid = "1001A110000000077KMR";
+ tranTypecode = "4K-Cxx-06";
}
// 生产入库(成品) 仓库传 1001A1100000001MA8ME
else if (endLocation.wh_id == WmsWareHouseConst.WAREHOUSE_CP_ID)
{
outWhid = WmsWareHouseConst.bipwarehouseid_mj;
+ outDeptid = WmsWareHouseConst.sichangqucangku_id;
+ outDeptvid = WmsWareHouseConst.sichangqucangku_vid;
+ inDeptid = WmsWareHouseConst.sichangqucangku_id;
+ inDeptvid = WmsWareHouseConst.sichangqucangku_vid;
+ tranTypeid = "1001A11000000006YKHG";
+ tranTypecode = "4K-Cxx-01";
+
bool isOk = await _db.Updateable().SetColumns(it => new WmsSterilizationInstockH { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID })
.Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync();
if (!isOk)
@@ -107,7 +126,7 @@ namespace Tnb.WarehouseMgr
tableIds.AddRange(unitDatas.Select(x => x.Id).ToList());
List erpExtendFields = await _db.Queryable().Where(x => tableIds.Contains(x.table_id)).ToListAsync();
- string userId = wmsRawmatTransferoutstockH.create_id;
+ string userId = wmsRawmatTransferoutstockH.create_id ?? WmsWareHouseConst.AdministratorUserId;
string erpCreateId = erpExtendFields.Find(x => x.table_id == userId)?.user_id ?? "";
ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (WmsWareHouseConst.AdministratorOrgId));
string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
@@ -118,14 +137,13 @@ namespace Tnb.WarehouseMgr
erpRequestData.Add("billmaker", erpCreateId);
erpRequestData.Add("corpoid", erpOrg.corpoid);
erpRequestData.Add("corpvid", erpOrg.corpvid);
- erpRequestData.Add("cdptid","1001A1100000001JFOPQ");//部门先写死
- erpRequestData.Add("cdptvid","0001A1100000000AOMIQ");//部门先写死
- erpRequestData.Add("cotherdptid","1001A1100000001JFOPQ");//部门先写死
- erpRequestData.Add("cotherdptvid","0001A1100000000AOMIQ");//部门先写死
+ erpRequestData.Add("cdptid",outDeptid);//部门先写死
+ erpRequestData.Add("cdptvid",outDeptvid);//部门先写死
+ erpRequestData.Add("cotherdptid",inDeptid);//部门先写死
+ erpRequestData.Add("cotherdptvid",inDeptvid);//部门先写死
erpRequestData.Add("creationtime", nowStr);
erpRequestData.Add("creator", erpCreateId);
- erpRequestData.Add("ctrantypeid", "0001H11000000000D32A");//先写死
- erpRequestData.Add("cwarehouseid", "outWhid");//先写死
+ erpRequestData.Add("cwarehouseid", outWhid);//先写死
erpRequestData.Add("dbilldate", wmsRawmatTransferoutstockH.create_time.Value.ToString("yyyy-MM-dd HH:mm:ss"));
erpRequestData.Add("dmakedate", nowStr);
erpRequestData.Add("dshldarrivedate", nowStr);
@@ -137,7 +155,8 @@ namespace Tnb.WarehouseMgr
erpRequestData.Add("pk_org_v", erpOrg.pk_org_v);
erpRequestData.Add("pk_group", erpOrg.pk_group);
erpRequestData.Add("vbillcode", wmsRawmatTransferoutstockH.bill_code);
- erpRequestData.Add("vtrantypecode", "4Y-01");//先写死
+ erpRequestData.Add("ctrantypeid", tranTypeid);//先写死
+ erpRequestData.Add("vtrantypecode", tranTypecode);//先写死
List> erpRequestDataDetails = new List>();
foreach(var item in wmsCarryCodes)
diff --git a/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs b/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs
index 2d1932e3..b642caa7 100644
--- a/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs
+++ b/taskschedule/Tnb.TaskScheduler/Listener/GenerateMaintainPlanTimeWorker.cs
@@ -3,8 +3,10 @@ using JNPF.Logging;
using JNPF.Message;
using JNPF.Message.Interfaces.Message;
using JNPF.Message.Service;
+using JNPF.Systems.Interfaces.System;
using SqlSugar;
using Tnb.EquipMgr.Entities;
+using Tnb.BasicData;
namespace JNPF.TaskScheduler.Listener
{
@@ -19,6 +21,7 @@ namespace JNPF.TaskScheduler.Listener
// _repository = repository;
// }
private IMessageService _sendMessageService => App.GetService();
+ private IBillRullService _billRuleService => App.GetService();
[SpareTime("0 0 0 * * ?", "生成保养计划", ExecuteType = SpareTimeExecuteTypes.Serial, StartNow = false)]
public async void GenerateSpotInspectionPlan(SpareTimer timer, long count)
{
@@ -105,7 +108,8 @@ namespace JNPF.TaskScheduler.Listener
if (equipments.FirstOrDefault(x => x.id == item.equip_id) == null)
continue;
- string code = $"{now.ToString("yyyyMMdd") + (index++).ToString().PadLeft(3, '0')}";
+ // string code = $"{now.ToString("yyyyMMdd") + (index++).ToString().PadLeft(3, '0')}";
+ string code = await _billRuleService.GetBillNumber(CodeTemplateConst.MAINTENANCERECORDFIJIPROJECT_CODE);
tobeCreateList.Add(new EqpMaintainRecordH()
{
code = code,
@@ -290,7 +294,8 @@ namespace JNPF.TaskScheduler.Listener
if (toolMoldList.FirstOrDefault(x => x.id == item.mold_id) == null)
continue;
- string code = $"{now.ToString("yyyyMMdd") + (index++).ToString().PadLeft(3, '0')}";
+ // string code = $"{now.ToString("yyyyMMdd") + (index++).ToString().PadLeft(3, '0')}";
+ string code = await _billRuleService.GetBillNumber(CodeTemplateConst.MOLDMAINTENANCE_CODE);
toolMoldTobeCreateList.Add(new ToolMoldMaintainRecordH()
{
code = code,
diff --git a/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs b/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs
index 594d2565..5a83f52d 100644
--- a/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs
+++ b/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs
@@ -1,7 +1,9 @@
using JNPF.Common.Security;
using JNPF.Logging;
using JNPF.Message.Interfaces.Message;
+using JNPF.Systems.Interfaces.System;
using SqlSugar;
+using Tnb.BasicData;
using Tnb.EquipMgr.Entities;
namespace JNPF.TaskScheduler.Listener
@@ -17,6 +19,7 @@ namespace JNPF.TaskScheduler.Listener
// _repository = repository;
// }
private IMessageService _sendMessageService => App.GetService();
+ private IBillRullService _billRuleService => App.GetService();
[SpareTime("0 0,30 * * * ?", "生成点巡检计划", ExecuteType = SpareTimeExecuteTypes.Serial, StartNow = false)]
public async void GenerateSpotInspectionPlan(SpareTimer timer, long count)
{
@@ -90,7 +93,8 @@ namespace JNPF.TaskScheduler.Listener
if (equipments.FirstOrDefault(x => x.id == item.equip_id) == null)
continue;
- string code = $"{now.ToString("yyyyMMddHHmm") + (index++).ToString().PadLeft(3, '0')}";
+ // string code = $"{now.ToString("yyyyMMddHHmm") + (index++).ToString().PadLeft(3, '0')}";
+ string code = await _billRuleService.GetBillNumber(CodeTemplateConst.SPOTINSPECTIONEXECUTIONSHEET_CODE);
tobeCreateList.Add(new EqpSpotInsRecordH()
{
id = SnowflakeIdHelper.NextId(),