This commit is contained in:
liqionghai
2025-11-18 17:43:12 +08:00
parent 3f9e939d54
commit d758497f93
189 changed files with 16669 additions and 0 deletions

View File

@@ -0,0 +1,225 @@
using Gatedge.K3Cloud.Utils;
using Gatedge.K3Cloud.Utils.Common;
using Gatedge.K3Cloud.Utils.Model.K3Request;
using Gatedge.ScanCode.Common;
using Gatedge.ScanCode.Extension;
using Gatedge.ScanCode.Models.Dto;
using Gatedge.ScanCode.Models.Dto.ScanRecords;
using Gatedge.ScanCode.Services;
using Gatedge.ScanCode.Services.IServices;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Gatedge.ScanCode.Controllers
{
/// <summary>
/// 暂存扫描记录
/// </summary>
[Route("api/[controller]")]
[Authorize]
[ApiController]
public class ScanRecordsController : ControllerBase
{
private readonly string _FormName = "扫描记录#";
private readonly string _FormId = "k4b27f8773ecb443da113e1a5e64ccaf9";
private readonly K3CloudApiUtils _utils;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="utils"></param>
public ScanRecordsController(K3CloudApiUtils utils)
{
_utils = utils;
}
/// <summary>
/// 查看
/// </summary>
/// <returns></returns>
[HttpGet("View")]
public AjaxResult View([FromQuery] View Param)
{
var loginInfo = User.GetLoginInfoByClaimsPrincipal();
_utils.InitCloudApi(loginInfo);
IScanRecordsService service = new ScanRecordsService(_utils);
var data = service.View(Param);
return AjaxResult.Success(data).AddBillId(_FormId);
}
/// <summary>
/// 单据列表
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
[HttpGet("List")]
public AjaxResult List([FromQuery] ScanRecordsPageParam param)
{
if (param.PageSize <= 0)
{
var errMes = string.Format("传递的参数不合法页大小需要大于0当前 PageSize 为 {0}", param.PageSize);
return AjaxResult.Error(500, errMes);
}
if (param.PageIndex <= 0)
{
var errMes = string.Format("传递的参数不合法页索引需要大于0当前 PageIndex 为 {0}", param.PageIndex);
return AjaxResult.Error(500, errMes);
}
if (param.UserId == null)
{
var errMes = string.Format("传递的参数不合法用户Id不能为空当前 UserId 为 {0}", param.UserId);
return AjaxResult.Error(500, errMes);
}
Query queryParam = new Query()
{
FormId = this._FormId,
FieldKeys = @"FID,FStatus,FCreatorId,FCreateDate,
FBillId.FID,FBillId.FName,FBillNo,FBarCode,FEntryId,FMaterialId,FMaterialId.FNumber,FMaterialId.FName,FQty,FStockId,FStockId.FNumber,FStockId.FName,Flot,FJSON,
FErrorInfo,FSubmitLot,
FResultBillId.FID,FResultBillId.FName,FResultBillNo,FResultId,FResultIsChecked,FIsPrinted",
Limit = param.PageSize,
StartRow = param.PageSize * (param.PageIndex - 1),
FilterString = new List<FilterItem>(),
OrderString = "FCreateDate DESC"
};
FilterItem userItem = new FilterItem("FCreatorId", "67", param.UserId, "0");
queryParam.FilterString.Add(userItem);
// 如果存在FormId加到过滤条件中
if (param.BillId != null)
{
queryParam.FilterString.Add(new FilterItem("FBillId.FID", "67", param.BillId, "0"));
}
// 如果存在FormId加到过滤条件中
if (param.BarCode != null)
{
queryParam.FilterString.Add(new FilterItem("FBarCode", "67", param.BarCode, "0"));
}
if (param.BillNo != null)
{
queryParam.FilterString.Add(new FilterItem("FBillNo", "67", param.BillNo, "0"));
}
if (param.Status != null)
{
queryParam.FilterString.Add(new FilterItem("FStatus", "29", param.Status, "0"));
}
if (param.SubmitLot != null)
{
queryParam.FilterString.Add(new FilterItem("FSubmitLot", "67", param.SubmitLot, "0"));
}
queryParam.FilterString.Add(userItem);
var loginInfo = User.GetLoginInfoByClaimsPrincipal();
_utils.InitCloudApi(loginInfo);
IScanRecordsService service = new ScanRecordsService(_utils);
var data = service.List(queryParam);
return AjaxResult.Success(data);
}
/// <summary>
/// 保存扫描记录
/// </summary>
/// <returns></returns>
[HttpPost("Save")]
public AjaxResult Save([FromBody] ScanRecordsSaveDto param)
{
var loginInfo = User.GetLoginInfoByClaimsPrincipal();
_utils.InitCloudApi(loginInfo);
IScanRecordsService service = new ScanRecordsService(_utils);
service.Save(param);
return AjaxResult.Success("保存成功");
}
/// <summary>
/// 批量扫描记录
/// </summary>
/// <returns></returns>
[HttpPost("PatchSave")]
public AjaxResult PatchSave([FromBody] ArrayDto<ScanRecordsSaveDto> param)
{
var loginInfo = User.GetLoginInfoByClaimsPrincipal();
_utils.InitCloudApi(loginInfo);
IScanRecordsService service = new ScanRecordsService(_utils);
service.PatchSave(param);
return AjaxResult.Success("保存成功");
}
/// <summary>
/// 删除扫描记录
/// </summary>
/// <returns></returns>
[HttpPost("Delete")]
public AjaxResult Delete([FromBody] Delete Param)
{
var loginInfo = User.GetLoginInfoByClaimsPrincipal();
_utils.InitCloudApi(loginInfo);
IScanRecordsService service = new ScanRecordsService(_utils);
service.Delete(Param);
return AjaxResult.Success("删除成功");
}
/// <summary>
/// 批量删除扫描记录
/// </summary>
/// <returns></returns>
[HttpPost("MultiDelete")]
public AjaxResult MultiDelete([FromBody] ScanRecordsPageParam Param)
{
if (Param.UserId == null)
{
var errMes = string.Format("传递的参数不合法用户Id不能为空当前 UserId 为 {0}", Param.UserId);
return AjaxResult.Error(500, errMes);
}
if (Param.BillId == null)
{
var errMes = string.Format("传递的参数不合法表单Id不能为空当前 FormId 为 {0}", Param.BillId);
return AjaxResult.Error(500, errMes);
}
Query queryParam = new Query()
{
FormId = this._FormId,
FieldKeys = "FID",
};
FilterList filterString = new FilterList();
FilterItem userItem = new FilterItem("FCreatorId", "67", Param.UserId, "0");
filterString.AddFilterItem(userItem);
FilterItem formidItem = new FilterItem("FFromId", "67", Param.BillId, "0");
filterString.AddFilterItem(formidItem);
queryParam.FilterString = filterString.GetFilterString();
var loginInfo = User.GetLoginInfoByClaimsPrincipal();
_utils.InitCloudApi(loginInfo);
IScanRecordsService service = new ScanRecordsService(_utils);
var data = service.List(queryParam);
var mes = string.Format("删除成功。删除数量:{0}", data.List.Count);
if (data.List.Count == 0)
{
return AjaxResult.Success(mes);
}
Delete delete = new Delete()
{
Ids = string.Join(",", data.List.Select(n => n["FID"].ToString()))
};
var result = service.Delete(delete);
return AjaxResult.Success(mes, result);
}
/// <summary>
/// 打印成果单据
/// </summary>
/// <returns></returns>
[HttpPost("PrintResultBillNo")]
public AjaxResult PrintResultBillNo([FromBody] PrintRecord printRecord)
{
var loginInfo = User.GetLoginInfoByClaimsPrincipal();
_utils.InitCloudApi(loginInfo);
IScanRecordsService service = new ScanRecordsService(_utils);
var reuslt = service.PrintResultBillNo(printRecord.Ids);
return AjaxResult.Success("扫描记录更新成功.");
}
}
}