This commit is contained in:
2023-06-28 10:37:56 +08:00
25 changed files with 233 additions and 29 deletions

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.BasicData.Entities.Dto
{
public class CalendarInput
{
public string? datetext { get; set; }
public string? datetype { get; set; }
public string? workhour { get; set; }
public string? worktype { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tnb.BasicData.Entities.Dto.BasCalendar
{
public class CalendarOut
{
public string? datetext { get; set; }
public string? datetype { get; set; }
public string? workhour { get; set; }
public string? worktype { get; set; }
}
}

View File

@@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JNPF.Common.Contracts;
using JNPF.Common.Security;
using SqlSugar;
namespace Tnb.BasicData.Entities
{
/// <summary>
/// 休息日设置
/// </summary>
[SugarTable("bas_calendar")]
public partial class BasCalendar : BaseEntity<string>
{
public BasCalendar()
{
id = SnowflakeIdHelper.NextId();
}
/// <summary>
/// 日期
/// </summary>
public string? datetext { get; set; }
/// <summary>
/// 工作类型
/// </summary>
public string? worktype { get; set; }
/// <summary>
/// 日期类型
/// </summary>
public string? datetype { get; set; }
/// <summary>
/// 工作时段
/// </summary>
public string? workhour { get; set; }
/// <summary>
/// 创建用户
/// </summary>
public string? create_id { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? create_time { get; set; }
/// <summary>
/// 修改用户
/// </summary>
public string? modify_id { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? modify_time { get; set; }
/// <summary>
/// 扩展
/// </summary>
public string? extras { get; set; }
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tnb.BasicData.Entities.Dto;
namespace Tnb.BasicData.Interfaces
{
public interface IBasCalendarService
{
/// <summary>
/// 保存工作日历
/// </summary>
/// <param name="CalendarInput"></param>
/// <returns></returns>
public Task SaveData(CalendarInput CalendarInput);
/// <summary>
/// 获取工作日历
/// </summary>
/// <returns></returns>
public Task<dynamic> GetWorkData();
}
}

View File

@@ -0,0 +1,77 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aspose.Cells.Drawing;
using JNPF.Common.Core.Manager;
using JNPF.Common.Models.VisualDev;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.Systems.Interfaces.System;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Entities.Dto;
using Tnb.BasicData.Entities.Dto.BasCalendar;
using Tnb.BasicData.Interfaces;
namespace Tnb.BasicData
{
/// <summary>
/// 工作日管理
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 1102)]
[Route("api/[area]/[controller]/[action]")]
public class BasCalendarService: IBasCalendarService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository<BasCalendar> _repository;
private readonly IUserManager _userManager;
public BasCalendarService(ISqlSugarRepository<BasCalendar> repository, IUserManager userManager)
{
_repository = repository;
_userManager = userManager;
}
/// <summary>
/// 保存工作日历
/// </summary>
/// <param name="CalendarInput"></param>
/// <returns></returns>
[HttpPost]
public async Task SaveData(CalendarInput CalendarInput)
{
var db = _repository.AsSugarClient();
BasCalendar BasCalendar = new BasCalendar();
BasCalendar.datetext = CalendarInput.datetext;
BasCalendar.datetype = CalendarInput.datetype;
BasCalendar.workhour = CalendarInput.workhour;
BasCalendar.worktype = CalendarInput.worktype;
BasCalendar.create_id = _userManager.UserId;
BasCalendar.create_time = DateTime.Now;
await db.Insertable(BasCalendar).ExecuteCommandAsync();
}
/// <summary>
/// 获取工作日历
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<dynamic> GetWorkData()
{
var db = _repository.AsSugarClient();
var lists = await db.Queryable<BasCalendar>().ToListAsync();
List<CalendarOut> CalendarOuts = new List<CalendarOut>();
foreach (var list in lists)
{
CalendarOut CalendarOut = new CalendarOut();
CalendarOut.datetext = list.datetext;
CalendarOut.datetype = list.datetype;
CalendarOut.workhour = list.workhour;
CalendarOut.worktype = list.worktype;
CalendarOuts.Add(CalendarOut);
}
return CalendarOuts;
}
}
}

View File

@@ -44,8 +44,8 @@ public partial class WmsCarryH : BaseEntity<string>
/// 载具状态
/// </summary>
///
[SugarColumn(ColumnDataType = "varchar(32)", SqlParameterDbType = typeof(CommonPropertyConvert))]
public int carry_status { get; set; }
//[SugarColumn(ColumnDataType = "varchar(32)", SqlParameterDbType = typeof(CommonPropertyConvert))]
public string carry_status { get; set; }
/// <summary>
/// 载具分类ID

View File

@@ -13,5 +13,5 @@ public partial class WmsDistaskH
/// 载具状态
/// </summary>
[SugarColumn(IsIgnore = true)]
public int carry_status { get; set; }
public string carry_status { get; set; }
}

View File

@@ -458,11 +458,12 @@ namespace Tnb.WarehouseMgr
for (int i = 0; i < multis.Count; i++)
{
var carryStatus = multis[i].carry_status;
if (multis[i].carry_status == (int)EnumCarryStatus.)
if (multis[i].carry_status == ((int)EnumCarryStatus.).ToString())
{
carryStatus = (int)EnumCarryStatus.;
carryStatus = ((int)EnumCarryStatus.).ToString();
}
await _db.Updateable<BasLocation>().SetColumns(it => new BasLocation { is_use = carryStatus, is_lock = 0 }).Where(it => it.id == multis[i].endlocation_id).ExecuteCommandAsync();
var cStatus =carryStatus.ParseToInt();
await _db.Updateable<BasLocation>().SetColumns(it => new BasLocation { is_use = cStatus, is_lock = 0 }).Where(it => it.id == multis[i].endlocation_id).ExecuteCommandAsync();
}
//更新业务主表的单据状态
if (disTasks?.Count > 0)

View File

@@ -70,9 +70,9 @@ namespace Tnb.WarehouseMgr
var subCarry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == subCarryId);
if (carry != null && subCarry != null)
{
carry.carry_status = (int)EnumCarryStatus.;
carry.carry_status = ((int)EnumCarryStatus.).ToString();
var row = await _db.Updateable(carry).ExecuteCommandAsync();
subCarry.carry_status = (int)EnumCarryStatus.;
subCarry.carry_status = ((int)EnumCarryStatus.).ToString();
row = await _db.Updateable(subCarry).ExecuteCommandAsync();
//更新载具明细表
WmsCarryD wmsCarryD = new()

View File

@@ -160,7 +160,7 @@ namespace Tnb.WarehouseMgr
try
{
carryObj.status = 0;
carryObj.carry_status = (int)EnumCarryStatus.;
carryObj.carry_status = ((int)EnumCarryStatus.).ToString();
carryObj.location_id = null;
carryObj.location_code = null;
carryObj.out_status = "0";

View File

@@ -92,9 +92,9 @@ namespace Tnb.WarehouseMgr
wmsCarryUnbindCode.create_time = DateTime.Now;
row = await _db.Insertable(wmsCarryUnbindCode).ExecuteCommandAsync();
}
carry.carry_status = (int)EnumCarryStatus.;
carry.carry_status = ((int)EnumCarryStatus.).ToString();
row = await _db.Updateable(carry).ExecuteCommandAsync();
subCarry.carry_status = (int)EnumCarryStatus.;
subCarry.carry_status = ((int)EnumCarryStatus.).ToString();
row = await _db.Updateable(subCarry).ExecuteCommandAsync();
isOk = (row > 0);
if (!isOk) throw Oops.Oh(ErrorCode.COM1001);

View File

@@ -158,7 +158,7 @@ namespace Tnb.WarehouseMgr
var location = await _db.Queryable<BasLocation>().SingleAsync(it => it.id == input.data[nameof(WmsDelivery.startlocation_id)].ToString());
{
//载具加锁,增加库位信息
await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH { carry_status = (int)EnumCarryStatus.,
await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH { carry_status = ((int)EnumCarryStatus.).ToString(),
is_lock = 1, location_id = input.data[nameof(WmsDelivery.startlocation_id)].ToString(), location_code = location.location_code}).Where(it => it.id == input.data[nameof(WmsDelivery.carry_id)].ToString()).ExecuteCommandAsync();
}

View File

@@ -78,7 +78,7 @@ namespace Tnb.WarehouseMgr
var setQty = await _db.Queryable<WmsEmptyOutstockH>().FirstAsync(it => it.bill_code == input.data[nameof(WmsEmptyOutstockH.bill_code)].ToString());
var carrys = await _db.Queryable<WmsCarryH>().LeftJoin<BasLocation>((a, b) => a.location_id == b.id)
.Where((a, b) => a.carrystd_id == input.data[nameof(WmsEmptyOutstockH.carrystd_id)].ToString()
&& a.carry_status == (int)EnumCarryStatus. && a.is_lock == 0 && b.is_lock == 0)
&& a.carry_status == ((int)EnumCarryStatus.).ToString() && a.is_lock == 0 && b.is_lock == 0)
.ToListAsync();
WmsPointH sPoint = null;

View File

@@ -222,6 +222,7 @@ namespace Tnb.WarehouseMgr
genPreTaskAfterUpInput.LocationIds = new HashSet<string>(locIds).ToList();
await _wareHouseService.GenInStockTaskHandleAfter(genPreTaskAfterUpInput, it => new WmsCarryH { is_lock = 1 }, it => new BasLocation { is_lock = 1 });
}
else throw new AppFriendlyException("库存不足", 500);
}
else throw new AppFriendlyException($"请输入物料明细", 500);

View File

@@ -84,9 +84,9 @@ namespace Tnb.WarehouseMgr
create_time = DateTime.Now
};
var row = await _db.Insertable(wmsCarryD).ExecuteCommandAsync();
carry.carry_status = (int)EnumCarryStatus.;
carry.carry_status = ((int)EnumCarryStatus.).ToString();
row = await _db.Updateable(carry).ExecuteCommandAsync();
subCarry.carry_status = (int)EnumCarryStatus.;
subCarry.carry_status = ((int)EnumCarryStatus.).ToString();
row = await _db.Updateable(subCarry).ExecuteCommandAsync();
var items = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == subCarryId).ToListAsync();
//更新载具绑定条码表

View File

@@ -91,9 +91,9 @@ namespace Tnb.WarehouseMgr
wmsCarryUnbindCode.create_time = DateTime.Now;
row = await _db.Insertable(wmsCarryUnbindCode).ExecuteCommandAsync();
}
carry.carry_status = (int)EnumCarryStatus.;
carry.carry_status = ((int)EnumCarryStatus.).ToString();
row = await _db.Updateable(carry).ExecuteCommandAsync();
subCarry.carry_status = (int)EnumCarryStatus.;
subCarry.carry_status = ((int)EnumCarryStatus.).ToString();
row = await _db.Updateable(subCarry).ExecuteCommandAsync();
isOk = (row > 0);
if (!isOk) throw Oops.Oh(ErrorCode.COM1001);

View File

@@ -157,7 +157,7 @@ namespace Tnb.WarehouseMgr
//载具加锁,增加库位信息
await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH
{
carry_status = (int)EnumCarryStatus.,
carry_status = ((int)EnumCarryStatus.).ToString(),
is_lock = 1,
location_id = input.data[nameof(WmsDelivery.startlocation_id)].ToString(),
location_code = location.location_code

View File

@@ -70,12 +70,12 @@ namespace Tnb.WarehouseMgr
//判断目标库位是否自动签收
var loc = await _db.Queryable<BasLocation>().SingleAsync(it => it.id == input.data[nameof(WmsPointH.location_id)].ToString());
//出库取起点,获取所有符合输入的载具规格的载具
var setQty = await _db.Queryable<WmsEmptyOutstockH>().FirstAsync(it => it.bill_code == input.data[nameof(WmsEmptyOutstockH.bill_code)].ToString());
var carrys = await _db.Queryable<WmsCarryH>().LeftJoin<BasLocation>((a, b) => a.location_id == b.id)
.Where((a, b) => a.carrystd_id == input.data[nameof(WmsEmptyOutstockH.carrystd_id)].ToString()
&& a.carry_status ==(int)EnumCarryStatus. && a.is_lock == 0 && b.is_lock == 0)
&& a.carry_status == ((int)EnumCarryStatus.).ToString() && a.is_lock == 0 && b.is_lock == 0)
.ToListAsync();
WmsPointH sPoint = null;
@@ -216,7 +216,7 @@ namespace Tnb.WarehouseMgr
{
await _db.Ado.RollbackTranAsync();
throw;
}
}
}

View File

@@ -130,7 +130,7 @@ namespace Tnb.WarehouseMgr
try
{
carryObj.status = 0;
carryObj.carry_status = (int)EnumCarryStatus.;
carryObj.carry_status = ((int)EnumCarryStatus.).ToString();
carryObj.location_id = null;
carryObj.location_code = null;
carryObj.out_status = "0";

View File

@@ -239,7 +239,7 @@ namespace Tnb.WarehouseMgr
await _db.Insertable(carryCodes).ExecuteCommandAsync();
await _db.Insertable(instockCOdes).CallEntityMethod(it => it.Create(orgId)).ExecuteCommandAsync();
await _wareHouseService.GenInStockTaskHandleAfter(preTaskUpInput,
it => new WmsCarryH { carry_code = input.data[nameof(WmsCarryH.carry_code)].ToString()!, is_lock = 1, carry_status = (int)EnumCarryStatus., location_id = preTaskUpInput.CarryStartLocationId, location_code = preTaskUpInput.CarryStartLocationCode },
it => new WmsCarryH { carry_code = input.data[nameof(WmsCarryH.carry_code)].ToString()!, is_lock = 1, carry_status = ((int)EnumCarryStatus.).ToString(), location_id = preTaskUpInput.CarryStartLocationId, location_code = preTaskUpInput.CarryStartLocationCode },
it => new BasLocation { is_lock = 1, is_use = (int)EnumCarryStatus. });
if (instockCOdes?.Count > 0)
{

View File

@@ -145,7 +145,7 @@ namespace Tnb.WarehouseMgr
var baleNum = input.data[nameof(WmsCarryH.bale_num)]?.ToString();
await _wareHouseService.GenInStockTaskHandleAfter(preTaskUpInput,
it => new WmsCarryH { is_lock = 1, location_id = preTaskUpInput.CarryStartLocationId, location_code = preTaskUpInput.CarryStartLocationCode, carry_status = (int)EnumCarryStatus., bale_num = baleNum },
it => new WmsCarryH { is_lock = 1, location_id = preTaskUpInput.CarryStartLocationId, location_code = preTaskUpInput.CarryStartLocationCode, carry_status = ((int)EnumCarryStatus.).ToString(), bale_num = baleNum },
it => new BasLocation { is_lock = 1 });
//((int)EnumCarryStatus.寄存).ToString()
}

View File

@@ -122,7 +122,7 @@ namespace Tnb.WarehouseMgr
//载具加锁,增加库位信息
await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH
{
carry_status = (int)EnumCarryStatus.,
carry_status = ((int)EnumCarryStatus.).ToString(),
is_lock = 1,
location_id = input.data[nameof(WmsTransfer.startlocation_id)].ToString(),
location_code = location.location_code

View File

@@ -128,7 +128,7 @@ namespace Tnb.WarehouseMgr
GenPreTaskUpInput genPreTaskAfterUpInput = new();
genPreTaskAfterUpInput.CarryIds = preTasks.Select(x => x.carry_id).ToList();
genPreTaskAfterUpInput.LocationIds = new HashSet<string>(locIds).ToList();
await _wareHouseService.GenInStockTaskHandleAfter(genPreTaskAfterUpInput, it => new WmsCarryH { is_lock = 1, carry_status = (int)EnumCarryStatus. }, it => new BasLocation { is_use = (int)EnumCarryStatus. });
await _wareHouseService.GenInStockTaskHandleAfter(genPreTaskAfterUpInput, it => new WmsCarryH { is_lock = 1, carry_status = ((int)EnumCarryStatus.).ToString() }, it => new BasLocation { is_use = (int)EnumCarryStatus. });
}
}
@@ -198,7 +198,7 @@ namespace Tnb.WarehouseMgr
{
await _db.Ado.BeginTranAsync();
await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH { carry_status = (int)EnumCarryStatus., location_id = null, location_code = null }).ExecuteCommandAsync();
await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH { carry_status = ((int)EnumCarryStatus.).ToString(), location_id = null, location_code = null }).ExecuteCommandAsync();
await _db.Updateable<BasLocation>().SetColumns(it => new BasLocation { is_use = (int)EnumCarryStatus. }).ExecuteCommandAsync();
await _db.Ado.CommitTranAsync();

View File

@@ -122,7 +122,7 @@ namespace Tnb.WarehouseMgr
//载具加锁,增加库位信息
await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH
{
carry_status = (int)EnumCarryStatus.,
carry_status = ((int)EnumCarryStatus.).ToString(),
is_lock = 1,
location_id = input.data[nameof(WmsTransfer.startlocation_id)].ToString(),
location_code = location.location_code

View File

@@ -180,7 +180,7 @@ namespace Tnb.WarehouseMgr
var subCarrys = await _db.Queryable<WmsCarryD>().Where(it => it.carry_id == ko.carry_id).ToListAsync();
var carryIds = subCarrys.Select(x => x.carry_id).Concat(new[] { ko.carry_id }).Distinct().ToList();
GenPreTaskUpInput genPreTaskInput = new() { CarryIds = carryIds, LocationIds = new List<string> { carry.location_id, ko.location_id } };
await _warehouseService.GenInStockTaskHandleAfter(genPreTaskInput, it => new WmsCarryH { is_lock = 1, carry_status = (int)EnumCarryStatus. }, it => new BasLocation { is_lock = 1 });
await _warehouseService.GenInStockTaskHandleAfter(genPreTaskInput, it => new WmsCarryH { is_lock = 1, carry_status = ((int)EnumCarryStatus.).ToString() }, it => new BasLocation { is_lock = 1 });
}
}