erp转库单同步

This commit is contained in:
2024-07-04 10:53:58 +08:00
parent 7b35c1768e
commit cbe419274e
6 changed files with 77 additions and 45 deletions

View File

@@ -318,50 +318,52 @@ public class BillRuleService : IBillRullService, IDynamicApiController, ITransie
/// <returns></returns>
private async Task<string> GetNumber(string enCode)
{
ISqlSugarClient db = _repository.CopyNew();
StringBuilder strNumber = new StringBuilder();
var entity = db.Queryable<BillRuleEntity>().Where(m => m.EnCode == enCode && m.DeleteMark == null).ToList()[0];
//var entity = await _repository.GetFirstAsync(m => m.EnCode == enCode && m.DeleteMark == null);
if (entity != null)
using (ISqlSugarClient db = _repository.CopyNew())
{
// 处理隔天流水号归0
if (entity.OutputNumber != null)
StringBuilder strNumber = new StringBuilder();
var entity = db.Queryable<BillRuleEntity>().Where(m => m.EnCode == enCode && m.DeleteMark == null).ToList()[0];
//var entity = await _repository.GetFirstAsync(m => m.EnCode == enCode && m.DeleteMark == null);
if (entity != null)
{
var serialDate = entity.OutputNumber.Remove(entity.OutputNumber.Length - (int)entity.Digit).Replace(entity.Prefix, string.Empty);
var thisDate = entity.DateFormat == "no" ? string.Empty : DateTime.Now.ToString(entity.DateFormat);
if (serialDate != thisDate)
// 处理隔天流水号归0
if (entity.OutputNumber != null)
{
entity.ThisNumber = 0;
var serialDate = entity.OutputNumber.Remove(entity.OutputNumber.Length - (int)entity.Digit).Replace(entity.Prefix, string.Empty);
var thisDate = entity.DateFormat == "no" ? string.Empty : DateTime.Now.ToString(entity.DateFormat);
if (serialDate != thisDate)
{
entity.ThisNumber = 0;
}
else
{
entity.ThisNumber++;
}
}
else
{
entity.ThisNumber++;
entity.ThisNumber = 0;
}
// 拼接单据编码
// 前缀
strNumber.Append(entity.Prefix);
if (entity.DateFormat != "no")
strNumber.Append(DateTime.Now.ToString(entity.DateFormat)); // 日期格式
var number = int.Parse(entity.StartNumber) + entity.ThisNumber;
strNumber.Append(number.ToString().PadLeft((int)entity.Digit, '0')); // 流水号
entity.OutputNumber = strNumber.ToString();
var str = strNumber.ToString();
// 更新流水号
await db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).CallEntityMethod(m => m.LastModify()).ExecuteCommandHasChangeAsync();
}
else
{
entity.ThisNumber = 0;
strNumber.Append("单据规则不存在");
}
// 拼接单据编码
// 前缀
strNumber.Append(entity.Prefix);
if (entity.DateFormat != "no")
strNumber.Append(DateTime.Now.ToString(entity.DateFormat)); // 日期格式
var number = int.Parse(entity.StartNumber) + entity.ThisNumber;
strNumber.Append(number.ToString().PadLeft((int)entity.Digit, '0')); // 流水号
entity.OutputNumber = strNumber.ToString();
var str = strNumber.ToString();
// 更新流水号
await db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).CallEntityMethod(m => m.LastModify()).ExecuteCommandHasChangeAsync();
return strNumber.ToString();
}
else
{
strNumber.Append("单据规则不存在");
}
return strNumber.ToString();
}
#endregion
}