using Gatedge.K3Cloud.Utils; using Gatedge.K3Cloud.Utils.Common; using Gatedge.K3Cloud.Utils.Model.K3Request; using Gatedge.K3Cloud.Utils.Model.K3Result; using Gatedge.K3Cloud.Utils.Model.K3Result.Model; using Gatedge.ScanCode.Models.Dto.BarRecord; using Gatedge.ScanCode.Models.K3Request.Auxprop; using Gatedge.ScanCode.Models.K3Request.BaseData; using Gatedge.ScanCode.Models.K3Request.Enum; using Gatedge.ScanCode.Models.K3Request.SaveModel; using Gatedge.ScanCode.Models.Vo; using Gatedge.ScanCode.Services.IServices; using Microsoft.AspNetCore.Mvc.RazorPages; using System.Net.NetworkInformation; using System.Security.Cryptography; namespace Gatedge.ScanCode.Services { /// /// 条码扫描记录服务类 /// public class BarRecordService : IBarRecordService { /// /// 单据FormId /// private readonly string _FormId = "ke3a69108a53e4baba04b1bf338355b6a"; /// /// 金蝶云星空工具类 /// private readonly K3CloudApiUtils _utils; /// /// 初始化工具类 /// /// public BarRecordService(K3CloudApiUtils utils) { _utils = utils; } /// /// 审核接口 /// /// /// public K3CloudResponseStatus Audit(Audit auditParam) { return _utils.Audit(this._FormId, auditParam); } /// /// 撤销接口 /// /// /// public K3CloudResponseStatus CancelAssign(CancelAssign cancelAssignBarRecord) { return _utils.CancelAssign(this._FormId, cancelAssignBarRecord); } /// /// 根据条码查找条码扫描记录 /// /// /// public ListResult FindIdByCode(string barCode) { Query queryParam = new Query() { FormId = this._FormId, FieldKeys = "FID,FBillNo,FDocumentStatus,FOrgId.FNumber,FCreatorId,FCreatorId.FName,FCreateDate,FBarCode,FErrorInfo", Limit = 2000, StartRow = 0, }; //FilterList filterString = new FilterList(); //FilterItem filterItem = new FilterItem("FBarCode", "67", barCode, "0"); //filterString.AddFilterItem(filterItem); //queryParam.FilterString = filterString.GetFilterString(); return List(queryParam); } /// /// 查看列表接口 /// /// /// /// public ListResult List(Query queryParam) { queryParam.FormId = this._FormId; var result = _utils.QueryList(queryParam); return result; } /// /// 打印条码接口 /// /// /// public void PrintResultBillNo(BarRecord barRecord) { Save saveParam = new Save() { IsDeleteEntry = false, Model = new BarRecordSave() { FID = barRecord.BarRecordId, FIsPrinted = "1" } }; this.Save(saveParam); } /// /// 保存条码扫描记录 /// /// /// public K3CloudResponseStatus Save(List param) { BarRecordSave barRecordSeve = new BarRecordSave() { FStatus = BarRecordStatus.Draft, FIsPrinted = "0", FErrorInfo = string.Empty, FBarEntity = param.Select(n => new BarRecordSave.BarEntry() { FBarBillId = new FormType() { FID = n.FBarBillId }, FBarBillNo = n.FBarBillNo, FBarSeq = n.FBarSeq, FBarCode = n.FBarCode, FBarMaterialId = n.FBarMaterialId == 0 ? null : new Material() { FMaterialId = n.FBarMaterialId, }, FBarStockId = n.FBarStockId == 0 ? null : new Stock() { FStockId = n.FBarStockId, }, FBarQty = n.FBarQty, FBarMoEntryId = n.FMoEntryId == 0 ? null : new MoEntry() { FEntryId = n.FMoEntryId }, FBarAuxPropId = n.FBarAuxpropId == 0 ? null : n.FBarAuxpropId }), }; var billSave = new Save(); billSave.Model = barRecordSeve; var result = Save(billSave); return result; } /// /// 标准保存接口 /// /// /// public K3CloudResponseStatus Save(Save param) { var result = _utils.Save(_FormId, param); return result; } /// /// 保存错误信息 /// /// /// /// public K3CloudResponseStatus SaveErrorInfo(int barRecordId, string ErrorInfo) { Save barRecordSave = new Save() { IsAutoSubmitAndAudit = false, IsDeleteEntry = false, Model = new BarRecordSave() { FID = barRecordId, FStatus = BarRecordStatus.Error, FErrorInfo = ErrorInfo } }; return this.Save(barRecordSave); } /// /// 提交扫描记录 /// /// /// public K3CloudResponseStatus Submit(Submit submitBarRecor) { return _utils.Submit(_FormId, submitBarRecor); } /// /// 提交成功信息 /// /// /// /// /// public K3CloudResponseStatus SubmitSuccess(int barRecordId, IEnumerable resultEntityList) { Save barRecordSave = new Save() { IsAutoSubmitAndAudit = false, IsDeleteEntry = false, Model = new BarRecordSave() { FID = barRecordId, FStatus = BarRecordStatus.Success, FErrorInfo = string.Empty, FResultEntity = resultEntityList } }; this.Save(barRecordSave); // 此时已经提交单据 this.Submit(new Submit() { Ids = barRecordId.ToString() }); return this.Audit(new Audit() { Ids = barRecordId.ToString() }); } /// /// 查看单据接口 /// /// /// public BarRecordVo View(View param) { return _utils.Query(_FormId, param); } } }