日志优化,成品库添加移库,AGV上料功能修正,出库计划过滤呆料,毛坯仓库添加实际操作时间
This commit is contained in:
@@ -42,7 +42,7 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms
|
||||
/// <summary>
|
||||
/// 7 判断箱子是否存在成品库仓库里
|
||||
/// </summary>
|
||||
/// <param name="PatchCode"></param>
|
||||
/// <param name="originalCode"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("is_existed_warehouse")]
|
||||
public IActionResult IsExistedWarehouse(string originalCode = "")
|
||||
|
||||
@@ -38,7 +38,6 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询毛坯库存库存变动记录表详情
|
||||
/// </summary>
|
||||
@@ -71,15 +70,22 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 1.增加库存
|
||||
/// 1.增加库存(入库)
|
||||
/// </summary>
|
||||
/// <param name="fkBlankInventoryId">库存id</param>
|
||||
/// <param name="blankNum">毛坯号</param>
|
||||
/// <param name="changeQuantity">变动量</param>
|
||||
/// <param name="actionTime">入库/出库时间</param>
|
||||
/// <param name="remark">备注</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("add_inventory")]
|
||||
public IActionResult AddInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string remark)
|
||||
public IActionResult AddInventory(
|
||||
string fkBlankInventoryId,
|
||||
string blankNum,
|
||||
int changeQuantity,
|
||||
string remark,
|
||||
DateTime? actionTime
|
||||
)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -91,26 +97,39 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
{
|
||||
return ToResponse(new ApiResult(500, "毛坯号为空!", "毛坯号为空!"));
|
||||
}
|
||||
var response = _WmBlankRecordService.AddInventory(fkBlankInventoryId, blankNum, changeQuantity, HttpContext.GetName(), remark);
|
||||
var response = _WmBlankRecordService.AddInventory(
|
||||
fkBlankInventoryId,
|
||||
blankNum,
|
||||
changeQuantity,
|
||||
HttpContext.GetName(),
|
||||
remark,
|
||||
actionTime
|
||||
);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return ToResponse(new ApiResult(500, ex.Message, "添加记录失败"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 2.减少库存
|
||||
/// 2.减少库存(出库)
|
||||
/// </summary>
|
||||
/// <param name="fkBlankInventoryId">库存id</param>
|
||||
/// <param name="blankNum">毛坯号</param>
|
||||
/// <param name="changeQuantity">变动量</param>
|
||||
/// <param name="actionTime">操作时间(出库时间)</param>
|
||||
/// <param name="remark">备注</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("delete_inventory")]
|
||||
public IActionResult DeleteInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string remark)
|
||||
public IActionResult DeleteInventory(
|
||||
string fkBlankInventoryId,
|
||||
string blankNum,
|
||||
int changeQuantity,
|
||||
string remark,
|
||||
DateTime? actionTime
|
||||
)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -122,16 +141,22 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
{
|
||||
return ToResponse(new ApiResult(500, "毛坯号为空!", "毛坯号为空!"));
|
||||
}
|
||||
var response = _WmBlankRecordService.DeleteInventory(fkBlankInventoryId, blankNum, changeQuantity, HttpContext.GetName(), remark);
|
||||
var response = _WmBlankRecordService.DeleteInventory(
|
||||
fkBlankInventoryId,
|
||||
blankNum,
|
||||
changeQuantity,
|
||||
HttpContext.GetName(),
|
||||
remark,
|
||||
actionTime
|
||||
);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return ToResponse(new ApiResult(500, ex.Message, "添加记录失败"));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新毛坯库存库存变动记录表
|
||||
/// </summary>
|
||||
@@ -157,15 +182,14 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
public IActionResult DeleteWmBlankRecord(string ids)
|
||||
{
|
||||
string[] idsArr = ids.Split(',');
|
||||
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
|
||||
if (idsArr.Length <= 0)
|
||||
{
|
||||
return ToResponse(ApiResult.Error($"删除失败Id 不能为空"));
|
||||
}
|
||||
|
||||
var response = _WmBlankRecordService.Delete(idsArr);
|
||||
|
||||
return ToResponse(response);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("getBatchTreeTableData")]
|
||||
[Log(Title = "根据查询条件聚合批量查询出库数据,并生成树列表数据", BusinessType = BusinessType.QUERY)]
|
||||
// [Log(Title = "根据查询条件聚合批量查询出库数据,并生成树列表数据", BusinessType = BusinessType.QUERY)]
|
||||
public IActionResult GetBatchTreeTableData([FromBody] WmGoodsBatchSearchDto parm)
|
||||
{
|
||||
if (parm is null)
|
||||
|
||||
@@ -111,7 +111,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ActionPermissionFilter(Permission = "wmsManagement:wmgoodsnowproduction:add")]
|
||||
[Log(Title = "成品库当前货物表", BusinessType = BusinessType.INSERT)]
|
||||
[Log(Title = "添加成品库当前货物表", BusinessType = BusinessType.INSERT)]
|
||||
public IActionResult AddWmGoodsNowProduction([FromBody] WmGoodsNowProductionDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<WmGoodsNowProduction>().ToCreate(HttpContext);
|
||||
@@ -127,7 +127,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[ActionPermissionFilter(Permission = "wmsManagement:wmgoodsnowproduction:edit")]
|
||||
[Log(Title = "成品库当前货物表", BusinessType = BusinessType.UPDATE)]
|
||||
[Log(Title = "更新成品库当前货物表", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult UpdateWmGoodsNowProduction([FromBody] WmGoodsNowProductionDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<WmGoodsNowProduction>().ToUpdate(HttpContext);
|
||||
@@ -142,7 +142,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
/// <returns></returns>
|
||||
[HttpDelete("{ids}")]
|
||||
[ActionPermissionFilter(Permission = "wmsManagement:wmgoodsnowproduction:delete")]
|
||||
[Log(Title = "成品库当前货物表", BusinessType = BusinessType.DELETE)]
|
||||
[Log(Title = "删除成品库当前货物表", BusinessType = BusinessType.DELETE)]
|
||||
public IActionResult DeleteWmGoodsNowProduction(string ids)
|
||||
{
|
||||
long[] idsArr = Tools.SpitLongArrary(ids);
|
||||
@@ -160,6 +160,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
/// <param name="stack_num"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("modifyInventoryQuantity")]
|
||||
[Log(Title = "修改库存数量", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult ModifyInventoryQuantity(string id, int stack_num)
|
||||
{
|
||||
if (string.IsNullOrEmpty(id))
|
||||
@@ -170,6 +171,21 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量修改成品库仓库编码
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("batchUpdateGoodsNowProductionLocationCode")]
|
||||
[ActionPermissionFilter(Permission = "wmsManagement:wmgoodsnowproduction:edit")]
|
||||
[Log(Title = "批量修改成品库仓库编码(移入呆滞品)", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult BatchUpdateGoodsNowProductionLocationCode([FromBody] BatchUpdateLocationCodeDto parm)
|
||||
{
|
||||
parm.UpdatedBy = HttpContext.GetName();
|
||||
parm.UpdatedTime = DateTime.Now;
|
||||
var response = _WmGoodsNowProductionService.BatchUpdateLocationCode(parm);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -62,7 +62,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ActionPermissionFilter(Permission = "wmsManagement:wmgoodsoutproduction:add")]
|
||||
[Log(Title = "出库货物记录表", BusinessType = BusinessType.INSERT)]
|
||||
[Log(Title = "添加出库货物记录表", BusinessType = BusinessType.INSERT)]
|
||||
public IActionResult AddWmGoodsOutProduction([FromBody] WmGoodsOutProductionDto parm)
|
||||
{
|
||||
try
|
||||
@@ -86,7 +86,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[ActionPermissionFilter(Permission = "wmsManagement:wmgoodsoutproduction:edit")]
|
||||
[Log(Title = "出库货物记录表", BusinessType = BusinessType.UPDATE)]
|
||||
[Log(Title = "更新出库货物记录表", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult UpdateWmGoodsOutProduction([FromBody] WmGoodsOutProductionDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<WmGoodsOutRecord>().ToUpdate(HttpContext);
|
||||
@@ -101,7 +101,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
/// <returns></returns>
|
||||
[HttpDelete("{ids}")]
|
||||
[ActionPermissionFilter(Permission = "wmsManagement:wmgoodsoutproduction:delete")]
|
||||
[Log(Title = "出库货物记录表", BusinessType = BusinessType.DELETE)]
|
||||
[Log(Title = "删除出库货物记录表", BusinessType = BusinessType.DELETE)]
|
||||
public IActionResult DeleteWmGoodsOutProduction(string ids)
|
||||
{
|
||||
long[] idsArr = Tools.SpitLongArrary(ids);
|
||||
|
||||
@@ -108,7 +108,6 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
|
||||
|
||||
[HttpGet("getInfoByPatchCode")]
|
||||
[Log(Title = "物料记录表", BusinessType = BusinessType.QUERY)]
|
||||
public IActionResult GetInfoByPatchCode(string patchCode)
|
||||
{
|
||||
if (string.IsNullOrEmpty(patchCode))
|
||||
|
||||
@@ -248,7 +248,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
///
|
||||
/// </returns>
|
||||
[HttpPost("doMaterialOut")]
|
||||
[Log(Title = "出库", BusinessType = BusinessType.INSERT)]
|
||||
[Log(Title = "成品出库", BusinessType = BusinessType.INSERT)]
|
||||
public IActionResult DoMaterialOut([FromBody] WmDoMaterialOut_Dto doMaterialOut)
|
||||
{
|
||||
if (doMaterialOut == null || doMaterialOut.ShipmentNum == null)
|
||||
|
||||
@@ -60,6 +60,8 @@ namespace ZR.Model.MES.wms.Dto
|
||||
|
||||
public int Status { get; set; }
|
||||
|
||||
public DateTime? ActionTime { get; set; }
|
||||
|
||||
public string Remark { get; set; }
|
||||
|
||||
public string CreatedBy { get; set; }
|
||||
|
||||
@@ -131,4 +131,18 @@ namespace ZR.Model.MES.wms.Dto
|
||||
/// </summary>
|
||||
public object Value { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量修改成品库库存
|
||||
/// </summary>
|
||||
public class BatchUpdateLocationCodeDto
|
||||
{
|
||||
public List<string> Ids { get; set; }
|
||||
|
||||
public string LocationCode { get; set; }
|
||||
|
||||
public string UpdatedBy { get; set; }
|
||||
|
||||
public DateTime? UpdatedTime { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,13 @@ namespace ZR.Model.MES.wms
|
||||
[SugarColumn(ColumnName = "change_quantity")]
|
||||
public int? ChangeQuantity { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "action_time")]
|
||||
public DateTime? ActionTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类别
|
||||
/// </summary>
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
using Infrastructure;
|
||||
using Infrastructure.Attribute;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using Infrastructure;
|
||||
using Infrastructure.Attribute;
|
||||
using JinianNet.JNTemplate;
|
||||
using SqlSugar;
|
||||
using ZR.Model.MES.mm;
|
||||
using ZR.Model.MES.mm.Dto;
|
||||
using ZR.Model.MES.pro;
|
||||
@@ -21,44 +22,46 @@ namespace ZR.Service.mes.mm
|
||||
public MaterialInputService()
|
||||
{
|
||||
logger = NLog.LogManager.GetCurrentClassLogger();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取AGV上料起点
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string[] Getstart_AGV_points()
|
||||
{
|
||||
List<MmAgvLocation> positions = Context.Queryable<MmAgvLocation>()
|
||||
List<MmAgvLocation> positions = Context
|
||||
.Queryable<MmAgvLocation>()
|
||||
.Where(it => it.AreaCode == 2)
|
||||
.Where(it => it.Type == 0)
|
||||
.ToList();
|
||||
|
||||
string[] cors = new string[positions.Count];
|
||||
for (int i = 0; i < positions.Count; i++) cors[i] = positions[i].Coordinate.ToString();
|
||||
for (int i = 0; i < positions.Count; i++)
|
||||
cors[i] = positions[i].Coordinate.ToString();
|
||||
|
||||
return cors;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取AGV上料终点
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string[] Getend_AGV_points()
|
||||
{
|
||||
List<MmAgvLocation> positions = Context.Queryable<MmAgvLocation>()
|
||||
.Where(it => it.AreaCode == 2)
|
||||
.Where(it => it.Type == 1)
|
||||
.ToList();
|
||||
List<MmAgvLocation> positions = Context
|
||||
.Queryable<MmAgvLocation>()
|
||||
.Where(it => it.AreaCode == 2)
|
||||
.Where(it => it.Type == 1)
|
||||
.ToList();
|
||||
|
||||
string[] cors = new string[positions.Count];
|
||||
for (int i = 0; i < positions.Count; i++) cors[i] = positions[i].Coordinate.ToString();
|
||||
for (int i = 0; i < positions.Count; i++)
|
||||
cors[i] = positions[i].Coordinate.ToString();
|
||||
|
||||
return cors;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取工单列表
|
||||
/// </summary>
|
||||
@@ -66,27 +69,40 @@ namespace ZR.Service.mes.mm
|
||||
/// <returns></returns>
|
||||
public (List<ProWorkorder_v2>, int) Getworkorderlist(WorkorderqueryDto query)
|
||||
{
|
||||
|
||||
DateTime datetimespan = new DateTime(query.datetimespan.Year, query.datetimespan.Month, query.datetimespan.Day, 0, 0, 0);
|
||||
DateTime datetimespan = new DateTime(
|
||||
query.datetimespan.Year,
|
||||
query.datetimespan.Month,
|
||||
query.datetimespan.Day,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
);
|
||||
|
||||
// 获取年份和周数
|
||||
Calendar calendar = new GregorianCalendar();
|
||||
int year = calendar.GetYear(datetimespan);
|
||||
int week = calendar.GetWeekOfYear(datetimespan, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Sunday);
|
||||
int week = calendar.GetWeekOfYear(
|
||||
datetimespan,
|
||||
CalendarWeekRule.FirstFourDayWeek,
|
||||
DayOfWeek.Sunday
|
||||
);
|
||||
|
||||
// 获取这一周中的第几天
|
||||
DayOfWeek dayOfWeek = datetimespan.DayOfWeek;
|
||||
int dayOfWeekNumber = (int)dayOfWeek; // 将 DayOfWeek 枚举转换为从 1 开始的数字
|
||||
Console.WriteLine("<-获取工单列表-> " + year + "年" + week + "周" + dayOfWeekNumber + "日");
|
||||
Console.WriteLine(
|
||||
"<-获取工单列表-> " + year + "年" + week + "周" + dayOfWeekNumber + "日"
|
||||
);
|
||||
logger.Error("<-获取工单列表-> " + year + "年" + week + "周" + dayOfWeekNumber + "日");
|
||||
//todo 已经和正在配料的工单号和毛坯号不能变??????
|
||||
//todo 已经和正在配料的工单号和毛坯号不能变??????
|
||||
int total = 0;
|
||||
List<ProWorkorder_v2> WorkorderList = Context.Queryable<ProWorkorder_v2>()
|
||||
.Where(it => it.Year == year)
|
||||
.Where(it => it.Week == week)
|
||||
.Where(it => it.Date == dayOfWeekNumber)
|
||||
.Where(it => it.Remark3 == "是" || it.Remark1 == "调试")
|
||||
.ToList();
|
||||
List<ProWorkorder_v2> WorkorderList = Context
|
||||
.Queryable<ProWorkorder_v2>()
|
||||
.Where(it => it.Year == year)
|
||||
.Where(it => it.Week == week)
|
||||
.Where(it => it.Date == dayOfWeekNumber)
|
||||
.Where(it => it.Remark3 == "是" || it.Remark1 == "调试")
|
||||
.ToList();
|
||||
// .ToPageList(query.pageNum??1, query.pageSize??10, ref total);
|
||||
|
||||
foreach (ProWorkorder_v2 workorder in WorkorderList)
|
||||
@@ -96,7 +112,8 @@ namespace ZR.Service.mes.mm
|
||||
workorder.ClientWorkorder = "调试:" + workorder.Id;
|
||||
}
|
||||
// 配料任务
|
||||
bool isExist = Context.Queryable<MmFkWorkorderIngredient>()
|
||||
bool isExist = Context
|
||||
.Queryable<MmFkWorkorderIngredient>()
|
||||
.Where(it => it.FkWorkorder == workorder.ClientWorkorder)
|
||||
.Where(it => it.FkBlanknumber == workorder.BlankNumber)
|
||||
.Any();
|
||||
@@ -115,17 +132,17 @@ namespace ZR.Service.mes.mm
|
||||
else
|
||||
{
|
||||
// todo 有个漏洞 如果计划单 修改数量 remian 就不对
|
||||
var ingredient = Context.Queryable<MmFkWorkorderIngredient>()
|
||||
.Where(it => it.FkWorkorder == workorder.ClientWorkorder)
|
||||
.Where(it => it.FkBlanknumber == workorder.BlankNumber)
|
||||
.First();
|
||||
var ingredient = Context
|
||||
.Queryable<MmFkWorkorderIngredient>()
|
||||
.Where(it => it.FkWorkorder == workorder.ClientWorkorder)
|
||||
.Where(it => it.FkBlanknumber == workorder.BlankNumber)
|
||||
.First();
|
||||
|
||||
if (ingredient != null)
|
||||
{
|
||||
workorder.PreviousNumber = workorder.PreviousNumber - (ingredient.Previous_numbered ?? 0);
|
||||
workorder.PreviousNumber =
|
||||
workorder.PreviousNumber - (ingredient.Previous_numbered ?? 0);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
WorkorderList.RemoveAll(num => num.PreviousNumber <= 0);
|
||||
@@ -157,29 +174,28 @@ namespace ZR.Service.mes.mm
|
||||
if (remian == 0)
|
||||
{
|
||||
//更改配料进度为完成
|
||||
int result = Context.Updateable<MmFkWorkorderIngredient>()
|
||||
.Where(it => it.FkWorkorder == item.workorder)
|
||||
.Where(it => it.FkBlanknumber == item.blanknumber)
|
||||
.SetColumns(it => it.Previous_numbered == item.previousNumbered)
|
||||
int result = Context
|
||||
.Updateable<MmFkWorkorderIngredient>()
|
||||
.Where(it => it.FkWorkorder == item.workorder)
|
||||
.Where(it => it.FkBlanknumber == item.blanknumber)
|
||||
.SetColumns(it => it.Previous_numbered == item.previousNumbered)
|
||||
.SetColumns(it => it.Isingredient == 1)
|
||||
.SetColumns(it => it.UpdatedTime == DateTime.Now)
|
||||
.ExecuteCommand();
|
||||
|
||||
.ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
//更改配料进度 修改配料进度
|
||||
Context.Updateable<MmFkWorkorderIngredient>()
|
||||
.Where(it => it.FkWorkorder == item.workorder)
|
||||
.Where(it => it.FkBlanknumber == item.blanknumber)
|
||||
.SetColumns(it => it.Previous_numbered == item.previousNumbered)
|
||||
.SetColumns(it => it.UpdatedTime == DateTime.Now)
|
||||
.SetColumns(it => it.Isingredient == 0)
|
||||
.ExecuteCommand();
|
||||
|
||||
Context
|
||||
.Updateable<MmFkWorkorderIngredient>()
|
||||
.Where(it => it.FkWorkorder == item.workorder)
|
||||
.Where(it => it.FkBlanknumber == item.blanknumber)
|
||||
.SetColumns(it => it.Previous_numbered == item.previousNumbered)
|
||||
.SetColumns(it => it.UpdatedTime == DateTime.Now)
|
||||
.SetColumns(it => it.Isingredient == 0)
|
||||
.ExecuteCommand();
|
||||
}
|
||||
|
||||
|
||||
MmIngredientTask ingredientTask = new MmIngredientTask();
|
||||
ingredientTask.AgvPosition = task.agv_position;
|
||||
ingredientTask.TaskId = taskid.ToString();
|
||||
@@ -191,17 +207,12 @@ namespace ZR.Service.mes.mm
|
||||
ingredientTask.CreatedBy = name;
|
||||
ingredientTask.CreatedTime = DateTime.Now;
|
||||
|
||||
|
||||
ingredientTasks.Add(ingredientTask);
|
||||
|
||||
}
|
||||
|
||||
return Context.Insertable(ingredientTasks).ExecuteCommand();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取配料任务
|
||||
/// </summary>
|
||||
@@ -213,19 +224,18 @@ namespace ZR.Service.mes.mm
|
||||
DateTime startOfDay = queryParams.datetimespan.Date;
|
||||
// 获取当天的结束时间
|
||||
DateTime endOfDay = startOfDay.AddDays(1).AddTicks(-1);
|
||||
return Context.Queryable<MmIngredientTask>()
|
||||
.Where(it => it.CreatedTime > startOfDay && it.CreatedTime < endOfDay)
|
||||
.Where(it => it.Isfinal == 0)
|
||||
.GroupBy(it => it.TaskId)
|
||||
.Select(it => new MmIngredientTask()
|
||||
{
|
||||
TaskId = it.TaskId,
|
||||
AgvPosition = SqlFunc.AggregateMax(it.AgvPosition),
|
||||
CreatedTime = SqlFunc.AggregateMax(it.CreatedTime)
|
||||
})
|
||||
.ToList();
|
||||
|
||||
|
||||
return Context
|
||||
.Queryable<MmIngredientTask>()
|
||||
.Where(it => it.CreatedTime > startOfDay && it.CreatedTime < endOfDay)
|
||||
.Where(it => it.Isfinal == 0)
|
||||
.GroupBy(it => it.TaskId)
|
||||
.Select(it => new MmIngredientTask()
|
||||
{
|
||||
TaskId = it.TaskId,
|
||||
AgvPosition = SqlFunc.AggregateMax(it.AgvPosition),
|
||||
CreatedTime = SqlFunc.AggregateMax(it.CreatedTime)
|
||||
})
|
||||
.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -244,13 +254,13 @@ namespace ZR.Service.mes.mm
|
||||
/// <returns></returns>
|
||||
public string[] Getfabgopoints()
|
||||
{
|
||||
return Context.Queryable<MmAgvLocation>().Where(it => it.AreaCode == 3)
|
||||
.Select(it => it.Coordinate).ToArray();
|
||||
|
||||
return Context
|
||||
.Queryable<MmAgvLocation>()
|
||||
.Where(it => it.AreaCode == 3)
|
||||
.Select(it => it.Coordinate)
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// agv从仓库到车间 进料
|
||||
/// </summary>
|
||||
@@ -262,7 +272,8 @@ namespace ZR.Service.mes.mm
|
||||
// Context.Updateable<MmAgvLocation>().Where(it => it.Coordinate == start_point).SetColumns(it => it.Status == 0).ExecuteCommand();
|
||||
// Context.Updateable<MmAgvLocation>().Where(it => it.Coordinate == end_point).SetColumns(it => it.Status == 1).ExecuteCommand();
|
||||
|
||||
string url = "https://192.168.60.1:443/rcms/services/rest/hikRpcService/genAgvSchedulingTask";
|
||||
string url =
|
||||
"https://192.168.60.1:443/rcms/services/rest/hikRpcService/genAgvSchedulingTask";
|
||||
logger.Info(" 1.任务调度请求url " + url);
|
||||
AGVtask_third task = new AGVtask_third();
|
||||
task.reqCode = SnowFlakeSingle.Instance.NextId().ToString();
|
||||
@@ -274,23 +285,12 @@ namespace ZR.Service.mes.mm
|
||||
if (end_point == "R1" || start_point == "R1")
|
||||
{
|
||||
task.taskTyp = "KLC";
|
||||
|
||||
}
|
||||
|
||||
task.positionCodePath = new List<AGV_location_third>
|
||||
{
|
||||
new AGV_location_third()
|
||||
{
|
||||
positionCode=start_point,
|
||||
type="00"
|
||||
|
||||
},
|
||||
new AGV_location_third()
|
||||
{
|
||||
positionCode=end_point,
|
||||
type="00"
|
||||
|
||||
}
|
||||
new AGV_location_third() { positionCode = start_point, type = "00" },
|
||||
new AGV_location_third() { positionCode = end_point, type = "00" }
|
||||
};
|
||||
task.podDir = "0";
|
||||
task.priority = "1";
|
||||
@@ -302,10 +302,8 @@ namespace ZR.Service.mes.mm
|
||||
logger.Info(" 3.任务调度请求响应 " + response);
|
||||
|
||||
return response;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 紧急终止AGV
|
||||
/// </summary>
|
||||
@@ -324,17 +322,13 @@ namespace ZR.Service.mes.mm
|
||||
|
||||
logger.Info(" 2.紧急终止AGV请求数据 " + postData);
|
||||
|
||||
|
||||
string response = HttpHelper.HttpPost(url, postData);
|
||||
|
||||
logger.Info(" 3.紧急终止AGV响应数据 " + response);
|
||||
|
||||
return response;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 完成配料任务
|
||||
/// 1.更改站点托盘
|
||||
@@ -348,33 +342,63 @@ namespace ZR.Service.mes.mm
|
||||
{
|
||||
// Context.Updateable<MmAgvLocation>().Where(it => it.Coordinate == start_point).SetColumns(it => it.Status == 0).ExecuteCommand();
|
||||
// Context.Updateable<MmAgvLocation>().Where(it => it.Coordinate == end_point).SetColumns(it => it.Status == 1).ExecuteCommand();
|
||||
result = Context.Updateable<MmIngredientTask>().Where(it => it.TaskId.Equals(taskId)).SetColumns(it => it.Isfinal == 1).ExecuteCommand();
|
||||
List<MmIngredientTask> tasks = Context.Queryable<MmIngredientTask>().Where(it => it.TaskId.Equals(taskId)).ToList();
|
||||
result = Context
|
||||
.Updateable<MmIngredientTask>()
|
||||
.Where(it => it.TaskId.Equals(taskId))
|
||||
.SetColumns(it => it.Isfinal == 1)
|
||||
.ExecuteCommand();
|
||||
List<MmIngredientTask> tasks = Context
|
||||
.Queryable<MmIngredientTask>()
|
||||
.Where(it => it.TaskId.Equals(taskId))
|
||||
.ToList();
|
||||
for (int i = 0; i < tasks.Count; i++)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(tasks[i].Workorder))
|
||||
{
|
||||
Context.Updateable<ProWorkorder_v2>().Where(it => it.ClientWorkorder == tasks[i].Workorder).SetColumns(it => it.Status == 1).ExecuteCommand();
|
||||
Context
|
||||
.Updateable<ProWorkorder_v2>()
|
||||
.Where(it => it.ClientWorkorder == tasks[i].Workorder)
|
||||
.SetColumns(it => it.Status == 1)
|
||||
.ExecuteCommand();
|
||||
}
|
||||
}
|
||||
|
||||
//查询毛坯号
|
||||
List<MmIngredientTask> TO_blankList = Context.Queryable<MmIngredientTask>().Where(it => it.TaskId == taskId).ToList();
|
||||
List<MmIngredientTask> TO_blankList = Context
|
||||
.Queryable<MmIngredientTask>()
|
||||
.Where(it => it.TaskId == taskId)
|
||||
.ToList();
|
||||
foreach (var task in TO_blankList)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(task.Blanknumber))
|
||||
{
|
||||
WmBlankInventory blankInventory = Context
|
||||
.Queryable<WmBlankInventory>()
|
||||
.Where(it => it.BlankNum == task.Blanknumber)
|
||||
// 默认毛坯扣除
|
||||
.Where(it => it.Type == 1)
|
||||
.Where(it => it.Status == 1)
|
||||
.First();
|
||||
if (blankInventory == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
//1 扣除库存
|
||||
Context.Updateable<WmBlankInventory>().SetColumns(it => it.Quantity == it.Quantity - task.PreviousNumbered)
|
||||
.Where(it => it.BlankNum == task.Blanknumber).ExecuteCommand();
|
||||
Context
|
||||
.Updateable<WmBlankInventory>()
|
||||
.SetColumns(it => it.Quantity == it.Quantity - task.PreviousNumbered)
|
||||
.Where(it => it.Id == blankInventory.Id)
|
||||
.ExecuteCommand();
|
||||
//2 增加库存记录
|
||||
WmBlankRecord res = new WmBlankRecord();
|
||||
res.Id = SnowFlakeSingle.Instance.NextId().ToString();
|
||||
res.FkBlankInventoryId = task.Blanknumber;
|
||||
res.FkBlankInventoryId = blankInventory.Id;
|
||||
res.BlankNum = task.Blanknumber;
|
||||
res.ChangeQuantity = task.PreviousNumbered;
|
||||
res.Type = 3;
|
||||
res.Status = 1;
|
||||
res.CreatedBy = "仓库人员";
|
||||
res.ActionTime = DateTime.Now;
|
||||
res.CreatedBy = "PDA上料";
|
||||
res.CreatedTime = DateTime.Now;
|
||||
|
||||
//填写库存记录
|
||||
@@ -383,27 +407,25 @@ namespace ZR.Service.mes.mm
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 车间返程起点
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string[] Emptycarreturn_start()
|
||||
{
|
||||
List<MmAgvLocation> positions = Context.Queryable<MmAgvLocation>()
|
||||
.Where(it => it.AreaCode == 3)
|
||||
|
||||
.ToList();
|
||||
List<MmAgvLocation> positions = Context
|
||||
.Queryable<MmAgvLocation>()
|
||||
.Where(it => it.AreaCode == 3)
|
||||
.ToList();
|
||||
|
||||
string[] cors = new string[positions.Count];
|
||||
for (int i = 0; i < positions.Count; i++) cors[i] = positions[i].Coordinate.ToString();
|
||||
for (int i = 0; i < positions.Count; i++)
|
||||
cors[i] = positions[i].Coordinate.ToString();
|
||||
|
||||
return cors;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -412,17 +434,16 @@ namespace ZR.Service.mes.mm
|
||||
/// <returns></returns>
|
||||
public string[] Emptycarreturn_end()
|
||||
{
|
||||
List<MmAgvLocation> positions = Context.Queryable<MmAgvLocation>()
|
||||
.Where(it => it.AreaCode == 2)
|
||||
|
||||
.ToList();
|
||||
List<MmAgvLocation> positions = Context
|
||||
.Queryable<MmAgvLocation>()
|
||||
.Where(it => it.AreaCode == 2)
|
||||
.ToList();
|
||||
|
||||
string[] cors = new string[positions.Count];
|
||||
for (int i = 0; i < positions.Count; i++) cors[i] = positions[i].Coordinate.ToString();
|
||||
for (int i = 0; i < positions.Count; i++)
|
||||
cors[i] = positions[i].Coordinate.ToString();
|
||||
|
||||
return cors;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using ZR.Model;
|
||||
using ZR.Model.MES.wms;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
@@ -16,9 +17,41 @@ namespace ZR.Service.mes.wms.IService
|
||||
WmBlankRecord AddWmBlankRecord(WmBlankRecord parm);
|
||||
|
||||
int UpdateWmBlankRecord(WmBlankRecord parm);
|
||||
|
||||
int AddInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark);
|
||||
int DeleteInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark);
|
||||
|
||||
/// <summary>
|
||||
/// 入库
|
||||
/// </summary>
|
||||
/// <param name="fkBlankInventoryId"></param>
|
||||
/// <param name="blankNum"></param>
|
||||
/// <param name="changeQuantity"></param>
|
||||
/// <param name="username"></param>
|
||||
/// <param name="remark"></param>
|
||||
/// <param name="actionTime"></param>
|
||||
/// <returns></returns>
|
||||
int AddInventory(
|
||||
string fkBlankInventoryId,
|
||||
string blankNum,
|
||||
int changeQuantity,
|
||||
string username,
|
||||
string remark,
|
||||
DateTime? actionTime
|
||||
);
|
||||
/// <summary>
|
||||
/// 出库
|
||||
/// </summary>
|
||||
/// <param name="fkBlankInventoryId"></param>
|
||||
/// <param name="blankNum">毛坯号</param>
|
||||
/// <param name="changeQuantity">操作数量</param>
|
||||
/// <param name="username">操作人</param>
|
||||
/// <param name="remark">备注</param>
|
||||
/// <param name="actionTime">操作时间</param>
|
||||
/// <returns></returns>
|
||||
int DeleteInventory(
|
||||
string fkBlankInventoryId,
|
||||
string blankNum,
|
||||
int changeQuantity,
|
||||
string username,
|
||||
string remark,
|
||||
DateTime? actionTime
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,14 @@ namespace ZR.Service.mes.wms.IService
|
||||
|
||||
int UpdateWmGoodsNowProduction(WmGoodsNowProduction parm);
|
||||
|
||||
/// <summary>
|
||||
/// 批量移库(批量转移进呆滞品库等使用)
|
||||
/// </summary>
|
||||
/// <param name="ids">箱主键列表</param>
|
||||
/// <param name="locationCode">转入库存编号</param>
|
||||
/// <returns></returns>
|
||||
int BatchUpdateLocationCode(BatchUpdateLocationCodeDto parm);
|
||||
|
||||
int ModifyInventoryQuantity(string id, int stack_num);
|
||||
|
||||
PagedInfo<WmGoodsNowProductionDictDto> GetDictData(WmGoodsNowProductionDictDto parm);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System;
|
||||
using Infrastructure.Attribute;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using ZR.Model;
|
||||
using ZR.Model.MES.wms;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
@@ -24,14 +24,26 @@ namespace ZR.Service.mes.wms
|
||||
{
|
||||
DateTime startTime = parm.CreatedTimeStart ?? new DateTime(1999, 1, 1, 0, 0, 0);
|
||||
DateTime endTime = parm.CreatedTimeEnd ?? new DateTime(1999, 1, 1, 0, 0, 0);
|
||||
var predicate = Expressionable.Create<WmBlankRecord>()
|
||||
.AndIF(!string.IsNullOrEmpty(parm.FkBlankInventoryId), it => it.FkBlankInventoryId == parm.FkBlankInventoryId)
|
||||
.AndIF(!string.IsNullOrEmpty(parm.BlankNum), it => it.BlankNum.Contains(parm.BlankNum))
|
||||
var predicate = Expressionable
|
||||
.Create<WmBlankRecord>()
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(parm.FkBlankInventoryId),
|
||||
it => it.FkBlankInventoryId == parm.FkBlankInventoryId
|
||||
)
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(parm.BlankNum),
|
||||
it => it.BlankNum.Contains(parm.BlankNum)
|
||||
)
|
||||
// .AndIF(parm.Status > -1, it => it.Status == parm.Status)
|
||||
.AndIF(parm.Type > 0, it => it.Type == parm.Type)
|
||||
.AndIF(parm.CreatedTimeStart > new DateTime(1999, 1, 1, 0, 0, 0), it => it.CreatedTime >= startTime.ToLocalTime())
|
||||
.AndIF(parm.CreatedTimeEnd > new DateTime(1999, 1, 1, 0, 0, 0), it => it.CreatedTime <= endTime.ToLocalTime())
|
||||
;
|
||||
.AndIF(
|
||||
parm.CreatedTimeStart > new DateTime(1999, 1, 1, 0, 0, 0),
|
||||
it => it.CreatedTime >= startTime.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
parm.CreatedTimeEnd > new DateTime(1999, 1, 1, 0, 0, 0),
|
||||
it => it.CreatedTime <= endTime.ToLocalTime()
|
||||
);
|
||||
|
||||
var response = Queryable()
|
||||
.Where(predicate.ToExpression())
|
||||
@@ -41,10 +53,11 @@ namespace ZR.Service.mes.wms
|
||||
{
|
||||
foreach (WmBlankRecordDto item in response.Result)
|
||||
{
|
||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
||||
.Where(it => it.BlankNum == item.BlankNum)
|
||||
.Where(it => it.Remarks == "毛坯")
|
||||
.First();
|
||||
WmMaterial material = Context
|
||||
.Queryable<WmMaterial>()
|
||||
.Where(it => it.BlankNum == item.BlankNum)
|
||||
.Where(it => it.Remarks == "毛坯")
|
||||
.First();
|
||||
if (material == null)
|
||||
{
|
||||
item.Description = "此毛坯号不在物料清单内!";
|
||||
@@ -54,13 +67,14 @@ namespace ZR.Service.mes.wms
|
||||
item.Unit = material.Unit;
|
||||
item.Version = material.Version;
|
||||
item.Specification = material.Specification;
|
||||
item.Description = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName;
|
||||
item.Description = !string.IsNullOrEmpty(material.Description)
|
||||
? material.Description
|
||||
: material.ProductName;
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取详情
|
||||
/// </summary>
|
||||
@@ -68,9 +82,7 @@ namespace ZR.Service.mes.wms
|
||||
/// <returns></returns>
|
||||
public WmBlankRecord GetInfo(string Id)
|
||||
{
|
||||
var response = Queryable()
|
||||
.Where(x => x.Id == Id)
|
||||
.First();
|
||||
var response = Queryable().Where(x => x.Id == Id).First();
|
||||
|
||||
return response;
|
||||
}
|
||||
@@ -116,19 +128,29 @@ namespace ZR.Service.mes.wms
|
||||
/// <param name="fk_blank_inventory_id"></param>
|
||||
/// <param name="change_quantity"></param>
|
||||
/// <returns></returns>
|
||||
public int AddInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark)
|
||||
public int AddInventory(
|
||||
string fkBlankInventoryId,
|
||||
string blankNum,
|
||||
int changeQuantity,
|
||||
string username,
|
||||
string remark,
|
||||
DateTime? actionTime
|
||||
)
|
||||
{
|
||||
bool hasRecord = Context.Queryable<WmBlankInventory>()
|
||||
.Where(it => it.Id == fkBlankInventoryId).Any();
|
||||
bool hasRecord = Context
|
||||
.Queryable<WmBlankInventory>()
|
||||
.Where(it => it.Id == fkBlankInventoryId)
|
||||
.Any();
|
||||
if (!hasRecord)
|
||||
{
|
||||
throw new Exception("无此毛坯号记录!");
|
||||
}
|
||||
// 增加库存
|
||||
int result = Context.Updateable<WmBlankInventory>()
|
||||
.SetColumns(it => it.Quantity == it.Quantity + changeQuantity)
|
||||
.Where(it => it.Id == fkBlankInventoryId)
|
||||
.ExecuteCommand();
|
||||
int result = Context
|
||||
.Updateable<WmBlankInventory>()
|
||||
.SetColumns(it => it.Quantity == it.Quantity + changeQuantity)
|
||||
.Where(it => it.Id == fkBlankInventoryId)
|
||||
.ExecuteCommand();
|
||||
if (result == 1)
|
||||
{
|
||||
WmBlankRecord res = new WmBlankRecord();
|
||||
@@ -138,16 +160,15 @@ namespace ZR.Service.mes.wms
|
||||
res.ChangeQuantity = changeQuantity;
|
||||
res.Type = 1;
|
||||
res.Status = 1;
|
||||
res.ActionTime = actionTime;
|
||||
res.Remark = remark;
|
||||
res.CreatedBy = username;
|
||||
res.CreatedTime = DateTime.Now;
|
||||
|
||||
//填写库存记录
|
||||
Context.Insertable(res).ExecuteCommand();
|
||||
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -158,14 +179,23 @@ namespace ZR.Service.mes.wms
|
||||
/// <param name="fk_blank_inventory_id"></param>
|
||||
/// <param name="change_quantity"></param>
|
||||
/// <returns></returns>
|
||||
public int DeleteInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark)
|
||||
public int DeleteInventory(
|
||||
string fkBlankInventoryId,
|
||||
string blankNum,
|
||||
int changeQuantity,
|
||||
string username,
|
||||
string remark,
|
||||
DateTime? actionTime
|
||||
)
|
||||
{
|
||||
int resut = 0;
|
||||
bool tranReuslt = UseTran2(() =>
|
||||
{
|
||||
WmBlankInventory record = Context.Queryable<WmBlankInventory>()
|
||||
.Where(it => it.Id == fkBlankInventoryId)
|
||||
.Where(it => it.BlankNum == blankNum).First();
|
||||
WmBlankInventory record = Context
|
||||
.Queryable<WmBlankInventory>()
|
||||
.Where(it => it.Id == fkBlankInventoryId)
|
||||
.Where(it => it.BlankNum == blankNum)
|
||||
.First();
|
||||
if (record != null && record.Quantity < changeQuantity)
|
||||
{
|
||||
resut = 0 - changeQuantity;
|
||||
@@ -178,10 +208,11 @@ namespace ZR.Service.mes.wms
|
||||
}
|
||||
else
|
||||
{
|
||||
resut = Context.Updateable<WmBlankInventory>()
|
||||
.SetColumns(it => it.Quantity == it.Quantity - changeQuantity)
|
||||
.Where(it => it.Id == fkBlankInventoryId)
|
||||
.ExecuteCommand();
|
||||
resut = Context
|
||||
.Updateable<WmBlankInventory>()
|
||||
.SetColumns(it => it.Quantity == it.Quantity - changeQuantity)
|
||||
.Where(it => it.Id == fkBlankInventoryId)
|
||||
.ExecuteCommand();
|
||||
|
||||
if (resut == 1)
|
||||
{
|
||||
@@ -193,17 +224,14 @@ namespace ZR.Service.mes.wms
|
||||
res.Type = 2;
|
||||
res.Status = 1;
|
||||
res.Remark = remark;
|
||||
res.ActionTime = actionTime;
|
||||
res.CreatedBy = username;
|
||||
res.CreatedTime = DateTime.Now;
|
||||
|
||||
//填写库存记录
|
||||
Context.Insertable(res).ExecuteCommand();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
if (!tranReuslt)
|
||||
{
|
||||
@@ -211,6 +239,5 @@ namespace ZR.Service.mes.wms
|
||||
}
|
||||
return resut;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -404,5 +404,29 @@ namespace ZR.Service.mes.wms
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
public int BatchUpdateLocationCode(BatchUpdateLocationCodeDto parm)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<WmGoodsNowProduction> updateList = new List<WmGoodsNowProduction>();
|
||||
foreach (string id in parm.Ids)
|
||||
{
|
||||
WmGoodsNowProduction nowProduction = new()
|
||||
{
|
||||
Id = id,
|
||||
LocationCode = parm.LocationCode,
|
||||
UpdatedBy = parm.UpdatedBy,
|
||||
UpdatedTime = parm.UpdatedTime,
|
||||
};
|
||||
updateList.Add(nowProduction);
|
||||
}
|
||||
return Context.Updateable(updateList).IgnoreColumns(ignoreAllNullColumns:true).ExecuteCommand();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new Exception(e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -365,6 +365,7 @@ namespace ZR.Service.mes.wms
|
||||
// 该物料下 ,现有货物列表,零件号相同,根据批次号从小到大排序
|
||||
List<WmGoodsNowProduction> wmGoodsNowsList = Context.Queryable<WmGoodsNowProduction>()
|
||||
.Where(it => it.Partnumber == partnumber)
|
||||
.Where(it => it.LocationCode != "Z1-01")
|
||||
.OrderBy(it => it.PackageCodeClient)
|
||||
.ToList();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user