d35ff80f3e
移除 APIPackagingManageService,功能迁移至 HJGLPackagingmanageService 并进行重构,新增方法支持包装与组件关联管理、分页查询、状态描述等功能。 更新 PackagingManageController,替换旧服务调用,新增接口方法。 调整数据库结构,新增子表 HJGL_PackagingManageDetail,优化包装与组件的关联存储。 更新前端页面逻辑,适配新数据结构,新增 StackingPosition 字段显示。 优化 Model 层字段定义,调整长度限制,提升性能与一致性。 更新报表模板与项目文件,移除冗余代码,提升代码可维护性。
120 lines
4.4 KiB
C#
120 lines
4.4 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
|
||
namespace BLL
|
||
{
|
||
public class APITrainNumberManagerService
|
||
{
|
||
/// <summary>
|
||
/// 车次发货验收
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <param name="PersonId"></param>
|
||
public static void SaveTrainInfoConfirmArrival(string id, string PersonId)
|
||
{
|
||
var model = TrainNumberManageService.GetModelById(id);
|
||
if (model != null)
|
||
{
|
||
model.ReceiveDate = DateTime.Now;
|
||
model.State = ((int)TrainNumberManageService.StateInt.已验收);
|
||
TrainNumberManageService.Update(model);
|
||
}
|
||
else
|
||
{
|
||
throw new Exception("车次信息有误,请检查!");
|
||
}
|
||
var packManagerList = HJGLPackagingmanageService.GetPackagingManage(id);
|
||
foreach (var item in packManagerList)
|
||
{
|
||
BLL.HJGLPackagingmanageService.GetPackingInfoConfirmArrival(item.PackagingManageId, PersonId);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取指定车次的包装明细(包装表)
|
||
/// </summary>
|
||
public static List<Model.HJGL_PackagingManage> GetPackagingByTrainId(string trainNumberId)
|
||
{
|
||
return HJGLPackagingmanageService.GetPackagingManage(trainNumberId);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 将包装关联到车次(设置 HJGL_PackagingManage.TrainNumberId)
|
||
/// </summary>
|
||
public static void AddPackagingToTrain(string packagingManageId, string trainNumberId)
|
||
{
|
||
var packModel = HJGLPackagingmanageService.GetHJGL_PackagingManageById(packagingManageId);
|
||
if (packModel == null)
|
||
{
|
||
throw new Exception("未找到对应的包装信息");
|
||
}
|
||
// 仅允许状态为未出库(state_0)时修改车次号,保持与前端逻辑一致
|
||
if (packModel.State != HJGLPackagingmanageService.state_0)
|
||
{
|
||
throw new Exception("当前包装状态不可修改车次号");
|
||
}
|
||
packModel.TrainNumberId = trainNumberId;
|
||
HJGLPackagingmanageService.UpdateHJGL_PackagingManage(packModel);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消包装与车次的关联(清空 HJGL_PackagingManage.TrainNumberId)
|
||
/// </summary>
|
||
public static void RemovePackagingFromTrain(string packagingManageId)
|
||
{
|
||
var packModel = HJGLPackagingmanageService.GetHJGL_PackagingManageById(packagingManageId);
|
||
if (packModel == null)
|
||
{
|
||
throw new Exception("未找到对应的包装信息");
|
||
}
|
||
/*if (packModel.State != HJGLPackagingmanageService.state_0)
|
||
{
|
||
throw new Exception("当前包装状态不可修改车次号");
|
||
}*/
|
||
packModel.TrainNumberId = null;
|
||
packModel.TrainNumber = null;
|
||
HJGLPackagingmanageService.UpdateHJGL_PackagingManage(packModel);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 新增或更新车次信息。若 model.Id 为空则新增,否则修改。返回创建或更新后的Id。
|
||
/// 新增时 State=0,ReceiveDate=null;修改时保持原有 State 和 ReceiveDate。
|
||
/// </summary>
|
||
public static string AddOrUpdateTrainNumber(Model.HJGL_TrainNumberManage model)
|
||
{
|
||
if (model == null)
|
||
{
|
||
throw new ArgumentNullException(nameof(model));
|
||
}
|
||
|
||
if (string.IsNullOrEmpty(model.Id))
|
||
{
|
||
// 新增
|
||
|
||
model.Id = SQLHelper.GetNewID(typeof(Model.HJGL_TrainNumberManage));
|
||
model.ReceiveDate = null;
|
||
TrainNumberManageService.Add(model);
|
||
return model.Id;
|
||
}
|
||
else
|
||
{
|
||
// 修改
|
||
var exist = TrainNumberManageService.GetModelById(model.Id);
|
||
if (exist == null)
|
||
{
|
||
model.ReceiveDate = null;
|
||
TrainNumberManageService.Add(model);
|
||
return model.Id;
|
||
}
|
||
else
|
||
{
|
||
// 保持原有ReceiveDate
|
||
model.ReceiveDate = exist.ReceiveDate;
|
||
TrainNumberManageService.Update(model);
|
||
return model.Id;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|