public void Run(Context ctx, Schedule schedule) { ctx.UserId = 101901; ctx.UserName = "******"; string strDateSql = string.Format(@"/*dialect*/select top 1 fdate from altablein where status=3 and isPur =0 and ferrorstatus=0 order by fdate"); DynamicObjectCollection dateData = DBUtils.ExecuteDynamicObject(ctx, strDateSql, null); if (dateData.Count() > 0) { //添加按照车间分组取不同的车间 string strproducesql = string.Format(@"/*dialect*/select distinct tbm.FWORKSHOPID FWORKSHOPID from altablein alin left join T_SAL_ORDER tso on alin.salenumber=tso.FBILLNO left join T_SAL_ORDERENTRY tsoe on tso.fid=tsoe.FID and alin.Linenumber=tsoe.FSEQ left join t_BD_MaterialBase tbmb on tbmb.FMATERIALID=tsoe.FMATERIALID left join t_BD_MaterialProduce tbm on tbm.FMATERIALID=tbmb.FMATERIALID where status=3 and tbm.FWORKSHOPID>0 and tbm.FWORKSHOPID>0 and isPur =0 and ferrorstatus=0 and alin.fdate='{0}'", Convert.ToDateTime(dateData[0]["fdate"])); DynamicObjectCollection workshopDataObject = DBUtils.ExecuteDynamicObject(ctx, strproducesql, null); foreach (DynamicObject itemworkshopDataObject in workshopDataObject) { long workshopid = Convert.ToInt64(itemworkshopDataObject["FWORKSHOPID"]);//取车间ID if (_3DServiceHelper.isTransfer(ctx, ObjectEnum.AlInStock, UpdateAltableinEnum.BeforeSave)) { //调用新的根据生产车间ID transferData = _3DServiceHelper.getALInstockSaveData(ctx, UpdateAltableinEnum.BeforeSave, ObjectEnum.AlInStock, workshopid); //本次执行计划处理的数据 long[] bb = transferData.SalOrder2DirectTrans.Select(s => s.altID).ToArray(); //本次执行计划要处理的数据的主键ID //根据主键对数据标识进行更新,同时设置更新时间戳 _3DServiceHelper.updateAltableStatus(ctx, UpdateAltableinEnum.AfterGetDate, ObjectEnum.AlInStock, bb); List <DynamicObject> modelList = new List <DynamicObject>(); Action <IDynamicFormViewService> fillBillPropertys = new Action <IDynamicFormViewService>(fillPropertys); DynamicObject billModel = _3DServiceHelper.CreateBillMode(ctx, "SP_InStock", fillBillPropertys); modelList.Add(billModel); DynamicObject[] model = modelList.Select(p => p).ToArray() as DynamicObject[]; IOperationResult saveResult = _3DServiceHelper.BatchSave(ctx, "SP_InStock", model); String id = Convert.ToString(model[0]["id"]); //对结果进行处理 //数据包整理完成后,将实际的分录主键反写回altablein表,便于未来反写其他状态所用 List <UpdateAltableinEntity> updateAltList = _3DServiceHelper.InstallUpdateAlPackage(ctx, UpdateAltableinEnum.AfterCreateModel, ObjectEnum.AlInStock, model, null, null, null, null, 0, "", "Entity"); if (updateAltList != null) { _3DServiceHelper.updateAltableStatus(ctx, UpdateAltableinEnum.AfterCreateModel, ObjectEnum.AlInStock, null, updateAltList); } //处理保存结果,成功、失败 if (saveResult.SuccessDataEnity != null) { object[] ids = (from c in saveResult.SuccessDataEnity select c[0]).ToArray();//保存成功的结果 IOperationResult submitResult = ids.Count() > 0 ? _3DServiceHelper.Submit(ctx, "SP_InStock", ids) : null; if (submitResult.SuccessDataEnity != null) { List <UpdateAltableinEntity> exceptPrtList = new List <UpdateAltableinEntity>(); List <UpdateAltableinEntity> successPrtList = new List <UpdateAltableinEntity>(); foreach (DynamicObject item in submitResult.SuccessDataEnity) { object[] ips = new object[] { item[0] }; IOperationResult auditResult = _3DServiceHelper.Audit(ctx, "SP_InStock", ips); if (auditResult.IsSuccess) { successPrtList = _3DServiceHelper.InstallUpdateAlPackage(ctx, UpdateAltableinEnum.AuditSucess, ObjectEnum.AlInStock, null, null, successPrtList, auditResult, null); //更新altablein表审核成功信息 _3DServiceHelper.updateAltableStatus(ctx, UpdateAltableinEnum.AuditSucess, ObjectEnum.AlInStock, null, successPrtList); } else if (!auditResult.InteractionContext.SimpleMessage.Equals("") && auditResult.InteractionContext.SimpleMessage != null) { exceptPrtList = _3DServiceHelper.InstallUpdateAlPackage(ctx, UpdateAltableinEnum.AuditError, ObjectEnum.AlInStock, null, null, exceptPrtList, auditResult, item); //更新altablein表 审核错误信息 _3DServiceHelper.updateAltableStatus(ctx, UpdateAltableinEnum.AuditError, ObjectEnum.AlInStock, null, exceptPrtList); //插入审核错误信息进入错误信息表 _3DServiceHelper.insertAllocationtableTable(ctx, UpdateAltableinEnum.AuditError, ObjectEnum.AlInStock, id); } } } } if (((List <ValidationErrorInfo>)saveResult.ValidationErrors).Count() > 0) { List <UpdateAltableinEntity> updateVoSavePrtList = _3DServiceHelper.InstallUpdateAlPackage(ctx, UpdateAltableinEnum.SaveError, ObjectEnum.AlInStock, null, saveResult); //更新altablein表状态 _3DServiceHelper.updateAltableStatus(ctx, UpdateAltableinEnum.SaveError, ObjectEnum.AlInStock, bb, updateVoSavePrtList); //插入保存错误信息进入错误信息表 _3DServiceHelper.insertAllocationtableTable(ctx, UpdateAltableinEnum.SaveError, ObjectEnum.AlInStock, id); } } } } }
public void Run(Context ctx, Schedule schedule) { ctx.UserId = 101901; ctx.UserName = "******"; if (_3DServiceHelper.isTransfer(ctx, ObjectEnum.AlPurTransfer, UpdateAltableinEnum.BeforeSave)) { transferData = _3DServiceHelper.getALSaveData(ctx, UpdateAltableinEnum.BeforeSave, ObjectEnum.AlPurTransfer); //本次执行计划处理的数据 long[] bb = transferData.SalOrder2DirectTrans.Select(s => s.altID).ToArray(); //本次执行计划要处理的数据的主键ID //根据主键对数据标识进行更新,同时设置更新时间戳 _3DServiceHelper.updateAltableStatus(ctx, UpdateAltableinEnum.AfterGetDate, ObjectEnum.AlPurTransfer, bb); List <DynamicObject> modelList = new List <DynamicObject>(); Action <IDynamicFormViewService> fillBillPropertys = new Action <IDynamicFormViewService>(fillPropertys); DynamicObject billModel = _3DServiceHelper.CreateBillMode(ctx, "STK_TransferDirect", fillBillPropertys); modelList.Add(billModel); DynamicObject[] model = modelList.Select(p => p).ToArray() as DynamicObject[]; IOperationResult saveResult = _3DServiceHelper.BatchSave(ctx, "STK_TransferDirect", model); String id = Convert.ToString(model[0]["id"]); //对结果进行处理 //数据包整理完成后,将实际的分录主键反写回altablein表,便于未来反写其他状态所用 List <UpdateAltableinEntity> updateAltList = _3DServiceHelper.InstallUpdateAlPackage(ctx, UpdateAltableinEnum.AfterCreateModel, ObjectEnum.AlPurTransfer, model, null, null, null, null, 0, "", "TransferDirectEntry"); if (updateAltList != null) { _3DServiceHelper.updateAltableStatus(ctx, UpdateAltableinEnum.AfterCreateModel, ObjectEnum.AlPurTransfer, null, updateAltList); } //处理保存结果,成功、失败 if (saveResult.SuccessDataEnity != null) { object[] ids = (from c in saveResult.SuccessDataEnity select c[0]).ToArray();//保存成功的结果 IOperationResult submitResult = ids.Count() > 0 ? _3DServiceHelper.Submit(ctx, "STK_TransferDirect", ids) : null; if (submitResult.SuccessDataEnity != null) { List <UpdateAltableinEntity> exceptPrtList = new List <UpdateAltableinEntity>(); List <UpdateAltableinEntity> successPrtList = new List <UpdateAltableinEntity>(); foreach (DynamicObject item in submitResult.SuccessDataEnity) { object[] ips = new object[] { item[0] }; IOperationResult auditResult = _3DServiceHelper.Audit(ctx, "STK_TransferDirect", ips); if (auditResult.IsSuccess) { successPrtList = _3DServiceHelper.InstallUpdateAlPackage(ctx, UpdateAltableinEnum.AuditSucess, ObjectEnum.AlPurTransfer, null, null, successPrtList, auditResult, null); //更新altablein表审核成功信息 _3DServiceHelper.updateAltableStatus(ctx, UpdateAltableinEnum.AuditSucess, ObjectEnum.AlPurTransfer, null, successPrtList); } else if (!auditResult.InteractionContext.SimpleMessage.Equals("") && auditResult.InteractionContext.SimpleMessage != null) { exceptPrtList = _3DServiceHelper.InstallUpdateAlPackage(ctx, UpdateAltableinEnum.AuditError, ObjectEnum.AlPurTransfer, null, null, exceptPrtList, auditResult, item); //更新altablein表 审核错误信息 _3DServiceHelper.updateAltableStatus(ctx, UpdateAltableinEnum.AuditError, ObjectEnum.AlPurTransfer, null, exceptPrtList); //插入审核错误信息进入错误信息表 _3DServiceHelper.insertAllocationtableTable(ctx, UpdateAltableinEnum.AuditError, ObjectEnum.AlPurTransfer, id); } } } } if (((List <ValidationErrorInfo>)saveResult.ValidationErrors).Count() > 0) { List <UpdateAltableinEntity> updateVoSavePrtList = _3DServiceHelper.InstallUpdateAlPackage(ctx, UpdateAltableinEnum.SaveError, ObjectEnum.AlPurTransfer, null, saveResult); //更新altablein表状态 _3DServiceHelper.updateAltableStatus(ctx, UpdateAltableinEnum.SaveError, ObjectEnum.AlPurTransfer, bb, updateVoSavePrtList); //插入保存错误信息进入错误信息表 _3DServiceHelper.insertAllocationtableTable(ctx, UpdateAltableinEnum.SaveError, ObjectEnum.AlPurTransfer, id); } } }