226 lines
8.5 KiB
C#
226 lines
8.5 KiB
C#
|
|
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("扫描记录更新成功.");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|