Files
Gatedge.NewOrientLandMark.BOS/Gatedge.ScanCode/Controllers/ScanRecordsController.cs
liqionghai d758497f93 1
2025-11-18 17:43:12 +08:00

226 lines
8.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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("扫描记录更新成功.");
}
}
}