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 { /// /// 暂存扫描记录 /// [Route("api/[controller]")] [Authorize] [ApiController] public class ScanRecordsController : ControllerBase { private readonly string _FormName = "扫描记录#"; private readonly string _FormId = "k4b27f8773ecb443da113e1a5e64ccaf9"; private readonly K3CloudApiUtils _utils; /// /// 构造函数 /// /// public ScanRecordsController(K3CloudApiUtils utils) { _utils = utils; } /// /// 查看 /// /// [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); } /// /// 单据列表 /// /// /// [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 = "", 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); } /// /// 保存扫描记录 /// /// [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("保存成功"); } /// /// 批量扫描记录 /// /// [HttpPost("PatchSave")] public AjaxResult PatchSave([FromBody] ArrayDto param) { var loginInfo = User.GetLoginInfoByClaimsPrincipal(); _utils.InitCloudApi(loginInfo); IScanRecordsService service = new ScanRecordsService(_utils); service.PatchSave(param); return AjaxResult.Success("保存成功"); } /// /// 删除扫描记录 /// /// [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("删除成功"); } /// /// 批量删除扫描记录 /// /// [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); } /// /// 打印成果单据 /// /// [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("扫描记录更新成功."); } } }