/// <summary> /// /// </summary> /// <param name="executionContext"></param> /// <returns></returns> protected internal override ActivityExecutionStatus DoExecute(ActivityExecutionContext executionContext) { IPizzaRepository repPizza = RepositoryFactory.GetInstance().GetRepository<IPizzaRepository, Pizza>(); IModelWeightRepository ModelWeightRepository = RepositoryFactory.GetInstance().GetRepository<IModelWeightRepository, ModelWeight>(); IList<PakSkuMasterWeightFisInfo> weightList = new List<PakSkuMasterWeightFisInfo>(); switch (InputType) { case InputTypeEnum.DN: case InputTypeEnum.Shipment: case InputTypeEnum.Waybill: IList<VShipmentPakComnInfo> comnList1 = (IList<VShipmentPakComnInfo>)CurrentSession.GetValue("ComnList"); string data = (string)CurrentSession.GetValue("Data"); foreach (VShipmentPakComnInfo temp in comnList1) { //若其model在IMES_PAK..ModelWeight.UnitWeight 没有定义weight //若在PAK_SkuMasterWeight_FIS能找到model前4位一样的数据(left(PAK_SkuMasterWeight_FIS.Model,4)=left(@model,4))时 ModelWeight mw = new ModelWeight(); mw = ModelWeightRepository.Find(temp.model); weightList = repPizza.GetPakSkuMasterWeightFisListByLikeModel(temp.model.Substring(0, 4)); if ((mw == null || mw.UnitWeight == 0) && (weightList != null && weightList.Count != 0)) { //将写入Packinglist_RePrint:insert into Packinglist_RePrint values (@DN--刷入的code,ACTUAL_SHIPDATE, @model) PackinglistRePrintInfo item = new PackinglistRePrintInfo(); item.model = temp.model; item.dn = data; item.shipDate = temp.actual_shipdate; repPizza.InsertPackinglistRePrint(item); } //按照model在PAK_SkuMasterWeight_FIS里找不到记录的,需要得到weight写入 //insert into PAK_SkuMasterWeight_FIS values(@model,@weight,getdate()) if(!repPizza.CheckExistModelInPakSkuMasterWeightFis(temp.model)) { decimal weight = 0; PakSkuMasterWeightFisInfo newinfo = new PakSkuMasterWeightFisInfo(); //@weight = convert(decimal(10,3), sum(Weight)/count(*)) from PAK_SkuMasterWeight_FIS where Left(Model,4) = left(@model,4) and substring(Model,10,2)<>'25' //UC疑问?????????? weight = repPizza.GetAverageWeightFromPakSkuMasterWeightFisByModel(temp.model.Substring(0,4)); if (weight < 0) { FisException ex; List<string> erpara = new List<string>(); //ITC-1360-1096 erpara.Add(data); erpara.Add(temp.model); ex = new FisException("CHK819", erpara); //ex.stopWF = false; throw ex; } else { newinfo.weight = weight; newinfo.model = temp.model; newinfo.cdt = DateTime.Now; repPizza.InsertPakSkuMasterWeightFis(newinfo); } } } break; case InputTypeEnum.DNForPL: //4.保存数据 IList<VShipmentPakComnInfo> listShip = (IList<VShipmentPakComnInfo>)CurrentSession.GetValue("ComnList"); string deliveryNo = (string)CurrentSession.GetValue(Session.SessionKeys.DeliveryNo); foreach (VShipmentPakComnInfo temp in listShip) { //按照model在PAK_SkuMasterWeight_FIS里找不到记录的,需要得到weight写入 //insert into PAK_SkuMasterWeight_FIS values(@model,@weight,getdate()) if (!repPizza.CheckExistModelInPakSkuMasterWeightFis(temp.model)) { //@weight = convert(decimal(10,3), sum(Weight)/count(*)) from PAK_SkuMasterWeight_FIS where Left(Model,4) = left(@model,4) decimal weight; //ITC-1360-1042 底层接口返回值修改为-1 weight = repPizza.GetAverageWeightFromPakSkuMasterWeightFis(temp.model.Substring(0, 4)); if (weight < 0) { FisException ex; List<string> erpara = new List<string>(); erpara.Add(deliveryNo); erpara.Add(temp.model); ex = new FisException("CHK819", erpara); throw ex; } PakSkuMasterWeightFisInfo item = new PakSkuMasterWeightFisInfo(); item.weight = weight; item.model = temp.model; item.cdt = DateTime.Now; repPizza.InsertPakSkuMasterWeightFis(item); } IList<decimal> wList = new List<decimal>(); //select @weight = Weight from PAK_SkuMasterWeight_FIS where Model = @model if @shipment = '' wList = repPizza.GetWeightFromPakSkuMasterWeightFis(temp.model); foreach (decimal y in wList) { //if @shipment = ' if (string.IsNullOrEmpty(temp.consol_invoice.TrimEnd())) { // if not exists(select * from PAK_ShipmentWeight_FIS where Shipment = left(@DN,10)) if (!repPizza.CheckExistPakShipmentWeightFis(deliveryNo.Substring(0, 10))) { IList<decimal> qtyList = new List<decimal>(); //select @qty = PACK_ID_LINE_ITEM_BOX_QTY from v_Shipment_PAKComn where InternalID = @deliveryno //ITC-1360-1049 底层接口抛异常 返回值修改为<decimal> qtyList = repPizza.GetPackIdLineItemBoxQtyFromPakShipmentWeightFis(deliveryNo); foreach (decimal t in qtyList) { PakShipmentWeightFisInfo item1 = new PakShipmentWeightFisInfo(); item1.weight = y * t; item1.cdt = DateTime.Now; item1.type = "D"; item1.shipment = deliveryNo; //insert into PAK_ShipmentWeight_FIS values(@DN,'D',convert(decimal(10,3),@qty)*@weight,getdate()) repPizza.InsertPakShipmentWeightFis(item1); } } } else { //if not exists (select * from PAK_ShipmentWeight_FIS where Shipment = @shipment) if (!repPizza.CheckExistPakShipmentWeightFis(temp.consol_invoice.TrimEnd())) { decimal qty; //select @qty = sum(PACK_ID_LINE_ITEM_BOX_QTY) from [v_Shipment_PAKComn] where CONSOL_INVOICE = @shipment qty = repPizza.GetSumOfPackIdLineItemBoxQtyFromVShipmentPakComn(temp.consol_invoice.TrimEnd()); PakShipmentWeightFisInfo item1 = new PakShipmentWeightFisInfo(); item1.weight = y * qty; item1.cdt = DateTime.Now; item1.type = "S"; item1.shipment = temp.consol_invoice.TrimEnd(); //insert into PAK_ShipmentWeight_FIS values(@shipment,'S',convert(decimal(10,3),@qty)*@weight,getdate()) repPizza.InsertPakShipmentWeightFis(item1); } } } } break; default: FisException ex1; List<string> erpara1 = new List<string>(); erpara1.Add((string)CurrentSession.GetValue("Data")); ex1 = new FisException("CHK816", erpara1); //ex1.stopWF = false; throw ex1; //break; } return base.DoExecute(executionContext); }
/// <summary> /// 保存修改的ModelWeight /// </summary> /// <param name="item">item</param> /// <returns></returns> public void SaveModelWeightItem(ModelWeightDef item) { try { IModelWeightRepository itemRepositoryModelWeight = RepositoryFactory.GetInstance().GetRepository<IModelWeightRepository>(); ////看取得的数据是否有, 防止update的是空记录,但[PAK_SkuMasterWeight_FIS]中加入了记录 //DataTable modelWeight = itemRepositoryModelWeight.GetModelWeightItem(item.Model); ////if (modelWeight == null || modelWeight.Rows.Count == 0) ////{ //// //该Model尚无标准重量,请先去称重。 //// List<string> erpara = new List<string>(); //// erpara.Add(item.Model); //// FisException ex; //// ex = new FisException("PAK123", erpara); //// throw ex; ////} //if (modelWeight == null || modelWeight.Rows.Count == 0 || item.UnitWeight == "0.00") //{ // item.UnitWeight = "0.00"; //} //else if (item.UnitWeight != "0.00") //{ //} //else //{ // item.UnitWeight = modelWeight.Rows[0][1].ToString(); //} if (string.IsNullOrEmpty(item.Model)) { //该Model尚无标准重量,请先去称重。 List<string> erpara = new List<string>(); erpara.Add("Model"); FisException ex; ex = new FisException("CQCHK0006", erpara); throw ex; } decimal inputUnitweight =decimal.Parse(item.UnitWeight); if (inputUnitweight == 0) { //该Model尚无标准重量,请先去称重。 List<string> erpara = new List<string>(); erpara.Add(item.Model); FisException ex; ex = new FisException("CQCHK0048", erpara); throw ex; } IModelWeightRepository currentModelWeightRepository = RepositoryFactory.GetInstance().GetRepository<IModelWeightRepository>(); IMES.FisObject.PAK.StandardWeight.ModelWeight currentModelWeight = currentModelWeightRepository.Find(item.Model); bool isAdd = false; if (currentModelWeight == null) { currentModelWeight = new IMES.FisObject.PAK.StandardWeight.ModelWeight(); //每次手動修改標準重需將ModelWeight.Remark='New',在10分鐘後送給SAP Unitweight currentModelWeight.Remark = "New"; isAdd = true; } else { if (!string.IsNullOrEmpty(currentModelWeight.SendStatus)) { currentModelWeight.Remark = currentModelWeight.UnitWeight.ToString(); } } currentModelWeight.Model = item.Model; //currentModelWeight.UnitWeight = Decimal.Parse(item.UnitWeight); currentModelWeight.UnitWeight = inputUnitweight; currentModelWeight.SendStatus = ""; currentModelWeight.Editor = item.Editor; currentModelWeight.Udt = DateTime.Now; IPizzaRepository itemRepositoryPizza = RepositoryFactory.GetInstance().GetRepository<IPizzaRepository>(); //ModelWeightInfo setValue =new ModelWeightInfo(); //setValue.unitWeight = Decimal.Parse(item.UnitWeight); //setValue.editor = item.Editor; //setValue.udt = DateTime.Now; //ModelWeightInfo condition =new ModelWeightInfo(); //condition.model = item.Model; PakSkuMasterWeightFisInfo pakSkuMasterWeight = new PakSkuMasterWeightFisInfo(); pakSkuMasterWeight.model = item.Model; //pakSkuMasterWeight.weight = setValue.unitWeight; //pakSkuMasterWeight.cdt = setValue.udt; pakSkuMasterWeight.weight = inputUnitweight; pakSkuMasterWeight.cdt = currentModelWeight.Udt; UnitOfWork uow = new UnitOfWork(); //itemRepositoryModelWeight.UpdateModelWeightDefered(uow,setValue,condition); itemRepositoryPizza.DeletetPakSkuMasterWeightFisByModelDefered(uow, item.Model); itemRepositoryPizza.InsertPakSkuMasterWeightFisDefered(uow, pakSkuMasterWeight); if (isAdd) { currentModelWeightRepository.Add(currentModelWeight, uow); } else { currentModelWeightRepository.Update(currentModelWeight, uow); } uow.Commit(); } catch (FisException e) { throw e; } catch (Exception e) { throw new SystemException(e.Message); } }
/// <summary> /// Insert And Update ModelWeight /// </summary> /// <param name="executionContext"></param> /// <returns></returns> protected internal override ActivityExecutionStatus DoExecute(ActivityExecutionContext executionContext) { //4. 如果Product Model 的UnitWeight (IMES_GetData..ModelWeight) 属性不存在则记录该属性;如果该属性值的Udt 不是当天,则更新该记录的UnitWeightValue,Editor 和Udt; Product currentProduct = (Product)CurrentSession.GetValue(Session.SessionKeys.Product); IModelWeightRepository currentModelWeightRepository = RepositoryFactory.GetInstance().GetRepository<IModelWeightRepository, ModelWeight>(); ModelWeight currentModelWeight = currentModelWeightRepository.Find(currentProduct.Model); //ITC-1360-1299: 如果Product Model 的UnitWeight (IMES_GetData..ModelWeight)属性,没有新Insert或Update时,不需要更新(Insert)HP EDI 数据(PAK_SkuMasterWeight_FIS) CurrentSession.AddValue(Session.SessionKeys.IsCheckPass, false); if (currentModelWeight == null) { ModelWeight newModelWeight = new ModelWeight(); newModelWeight.Model = currentProduct.Model; newModelWeight.UnitWeight = (decimal)CurrentSession.GetValue(Session.SessionKeys.ActuralWeight); newModelWeight.CartonWeight = (decimal)0.00; newModelWeight.SendStatus = ""; newModelWeight.Remark = "New"; newModelWeight.Editor = this.Editor; newModelWeight.Udt = DateTime.Now; currentModelWeightRepository.Add(newModelWeight, CurrentSession.UnitOfWork); CurrentSession.AddValue(Session.SessionKeys.IsCheckPass, true); CurrentSession.AddValue("SetWeight", newModelWeight.UnitWeight); } else if (currentModelWeight.UnitWeight.Equals(0)) { currentModelWeight.Model = currentProduct.Model; currentModelWeight.UnitWeight = (decimal)CurrentSession.GetValue(Session.SessionKeys.ActuralWeight); currentModelWeight.CartonWeight = (decimal)0.00; currentModelWeight.SendStatus = ""; currentModelWeight.Remark = "0"; currentModelWeight.Editor = this.Editor; currentModelWeight.Udt = DateTime.Now; currentModelWeightRepository.Update(currentModelWeight, CurrentSession.UnitOfWork); CurrentSession.AddValue(Session.SessionKeys.IsCheckPass, true); CurrentSession.AddValue("SetWeight", currentModelWeight.UnitWeight); } //ITC-1360-1302 //if (currentModelWeight.Udt.ToShortDateString().ToString() != DateTime.Now.ToShortDateString().ToString()) else if (currentModelWeight.Udt.ToShortDateString().ToString() != DateTime.Now.ToShortDateString().ToString()) { currentModelWeight.Model = currentProduct.Model; currentModelWeight.Remark = currentModelWeight.UnitWeight.ToString(); currentModelWeight.UnitWeight = (decimal)CurrentSession.GetValue(Session.SessionKeys.ActuralWeight); currentModelWeight.SendStatus = ""; currentModelWeight.Editor = this.Editor; currentModelWeight.Udt = DateTime.Now; currentModelWeightRepository.Update(currentModelWeight, CurrentSession.UnitOfWork); CurrentSession.AddValue(Session.SessionKeys.IsCheckPass, true); CurrentSession.AddValue("SetWeight", currentModelWeight.UnitWeight); } //当 Product 为同机型机器当天的第50台Pass Unit Weight 站的机器,需要取这50台机器的Product.UnitWeight 的平均值,更新ModelWeight 对应记录的UnitWeight,Editor 和Udt else { IProductRepository productRepository = RepositoryFactory.GetInstance().GetRepository<IProductRepository, IProduct>(); if (49 == productRepository.GetCountOfCurrentDayByModelAndStation(currentProduct.Model, "85")) { decimal avrWeight = productRepository.GetAverageModelWeightOfCurrentDay(currentProduct.Model, "85"); currentModelWeight.Remark = currentModelWeight.UnitWeight.ToString(); decimal thisWeight = (decimal)CurrentSession.GetValue(Session.SessionKeys.ActuralWeight); currentModelWeight.Model = currentProduct.Model; currentModelWeight.UnitWeight = (avrWeight * 49 + thisWeight) / 50; currentModelWeight.SendStatus = ""; currentModelWeight.Editor = this.Editor; currentModelWeight.Udt = DateTime.Now; currentModelWeightRepository.Update(currentModelWeight, CurrentSession.UnitOfWork); CurrentSession.AddValue(Session.SessionKeys.IsCheckPass, true); CurrentSession.AddValue("SetWeight", currentModelWeight.UnitWeight); } } return base.DoExecute(executionContext); }
/// <summary> /// 执行逻辑 /// 标准误差如果Model没有,再按Custormer找 /// </summary> /// <param name="executionContext"></param> /// <returns></returns> protected internal override ActivityExecutionStatus DoExecute(ActivityExecutionContext executionContext) { IPartRepository ipartRepository = RepositoryFactory.GetInstance().GetRepository<IPartRepository, IPart>(); string defaultTolerance = (string)CurrentSession.GetValue(Session.SessionKeys.Tolerance); Product currentProduct = (Product)CurrentSession.GetValue(Session.SessionKeys.Product); IModelWeightRepository currentModelWeightRepository = RepositoryFactory.GetInstance().GetRepository<IModelWeightRepository, ModelWeight>(); ModelWeight currentModelWeight = currentModelWeightRepository.Find(currentProduct.Model); IFamilyRepository famliyRep = RepositoryFactory.GetInstance().GetRepository<IFamilyRepository, Family>(); IModelToleranceRepository currentModelToleranceRepository = RepositoryFactory.GetInstance().GetRepository<IModelToleranceRepository, ModelTolerance>(); ModelTolerance currentModelTolerance = currentModelToleranceRepository.Find(currentProduct.Model); if (currentModelTolerance == null) { currentModelTolerance = currentModelToleranceRepository.Find(Customer); } if (WeightType == WeightTypeEnum.Unit) { //if (currentModelTolerance == null || currentModelTolerance.UnitTolerance == null) //{ // List<string> errpara = new List<string>(); // errpara.Add(currentProduct.Model); // throw new FisException("CHK004", errpara); //} //UC Revision:6912:修改误差可以配置( UnitWeight称重 新方案: 缺省是2) if (currentModelTolerance == null || currentModelTolerance.UnitTolerance == null) { currentModelTolerance = new ModelTolerance(); // currentModelTolerance.UnitTolerance = "2"; //ITC-1360-1204: 改由sysSeting配置 IList<string> ToleranceLst = new List<string>(); ToleranceLst = ipartRepository.GetValueFromSysSettingByName("UnitWeightTolerance"); //For BSAM // BSamUnitWeightTolerance if( (string)CurrentSession.GetValue(ExtendSession.SessionKeys.IsBSamModel)=="Y") { ToleranceLst = ipartRepository.GetValueFromSysSettingByName("BSamUnitWeightTolerance"); } //For BSAM //For Tablet FamilyInfoDef fcond = new FamilyInfoDef(); fcond.family = currentProduct.Family; fcond.name = "Category"; IList<FamilyInfoDef> famValList = famliyRep.GetExistFamilyInfo(fcond); if (famValList.Count > 0) { string sysName = famValList[0].value.Trim() + "UnitWeightTolerance"; ToleranceLst = ipartRepository.GetValueFromSysSettingByName(sysName); if (ToleranceLst.Count == 0) { throw new FisException("PAK095", new string[] { sysName }); } } //For Tablet if (ToleranceLst != null && ToleranceLst.Count > 0) { // ITC-1360-1465 : 2% if (!ToleranceLst[0].ToString().Contains("%")) { string sysSettingUnitTolerance = ToleranceLst[0].ToString() + "%"; currentModelTolerance.UnitTolerance = sysSettingUnitTolerance; } else { currentModelTolerance.UnitTolerance = ToleranceLst[0].ToString(); } } else { //List<string> errpara = new List<string>(); //errpara.Add("UnitWeightTolerance"); //throw new FisException("PAK095", errpara); // ITC-1360-1465 : 2% /* * Answer to: ITC-1414-0105 * Description: Set default tolerance properly. */ if (defaultTolerance != null && defaultTolerance != "") { currentModelTolerance.UnitTolerance = defaultTolerance; } else { currentModelTolerance.UnitTolerance = "2%"; } } } //// UnitWeight称重 新方案: Standard Weight – IMES_GetData..ModelWeight.UnitWeight(需转换为decimal(10,2)) – 如果没有取到,则标准重量为NULL (这台机器后面就不需要进行标准重量的比较了) if (currentModelWeight == null) { //currentModelWeight = new ModelWeight(); //currentModelWeight.Model = currentProduct.Model; //currentModelWeight.UnitWeight = (decimal)CurrentSession.GetValue(Session.SessionKeys.ActuralWeight); //currentModelWeight.Editor = Editor; //currentModelWeight.Udt = DateTime.Now; //currentModelWeightRepository.Add(currentModelWeight, CurrentSession.UnitOfWork); CurrentSession.AddValue(Session.SessionKeys.StandardWeight, null); } else if (currentModelWeight.UnitWeight.Equals(0)) { //currentModelWeight.UnitWeight = (decimal)CurrentSession.GetValue(Session.SessionKeys.ActuralWeight); //currentModelWeight.Editor = Editor; //currentModelWeight.Udt = DateTime.Now; //currentModelWeightRepository.Update(currentModelWeight, CurrentSession.UnitOfWork); //5. 如果称取的重量为0,则报告错误:“Unit weight should not be 0!” List<string> errpara = new List<string>(); errpara.Add(currentProduct.Model); throw new FisException("PAK072", errpara); } else { CurrentSession.AddValue(Session.SessionKeys.StandardWeight, currentModelWeight.UnitWeight); } CurrentSession.AddValue(Session.SessionKeys.Tolerance, currentModelTolerance.UnitTolerance); } else { if (currentModelTolerance == null || currentModelTolerance.CartonTolerance == null) { List<string> errpara = new List<string>(); errpara.Add(currentProduct.Model); throw new FisException("CHK005", errpara); } if (currentModelWeight == null ) { currentModelWeight = new ModelWeight(); currentModelWeight.Model = currentProduct.Model; currentModelWeight.CartonWeight = (decimal)CurrentSession.GetValue(Session.SessionKeys.ActuralWeight); currentModelWeight.SendStatus = ""; currentModelWeight.Remark = "New"; currentModelWeight.Editor = Editor; currentModelWeight.Udt = DateTime.Now; currentModelWeightRepository.Add(currentModelWeight, CurrentSession.UnitOfWork); } else if (currentModelWeight.CartonWeight.Equals(0)) { currentModelWeight.CartonWeight = (decimal)CurrentSession.GetValue(Session.SessionKeys.ActuralWeight); currentModelWeight.SendStatus = ""; currentModelWeight.Remark = "0"; currentModelWeight.Editor = Editor; currentModelWeight.Udt = DateTime.Now; currentModelWeightRepository.Update(currentModelWeight, CurrentSession.UnitOfWork); } CurrentSession.AddValue(Session.SessionKeys.Tolerance, currentModelTolerance.CartonTolerance); CurrentSession.AddValue(Session.SessionKeys.StandardWeight, currentModelWeight.CartonWeight); } return base.DoExecute(executionContext); }
/// <summary> /// 更新Model的标准重量 /// </summary> public void SetModelWeight(string model, decimal weight, string editor) { logger.Debug("(RCTOWeight)SetModelWeight start, Model:" + model); try { IPartRepository partRep = RepositoryFactory.GetInstance().GetRepository<IPartRepository, IPart>(); bool need1000 = partRep.GetConstValueTypeList("RCTOModelWeightUnit").Where(x => x.value == model.Trim()).Any(); if (need1000) { weight = Math.Round(weight * 1000, 2); } weight = Math.Round(weight, 2); IMES.FisObject.PAK.StandardWeight.ModelWeight mw=mvRepository.Find(model); //if (mvRepository.Find(model) != null) if (mw!=null) { ModelWeightInfo cond = new ModelWeightInfo(); ModelWeightInfo item = new ModelWeightInfo(); cond.model = model; item.model = model; item.unitWeight = weight; item.editor = editor; item.remark = mw.UnitWeight.ToString(); item.sendStatus = ""; mvRepository.UpdateModelWeight(item, cond); } else { IMES.FisObject.PAK.StandardWeight.ModelWeight item = new IMES.FisObject.PAK.StandardWeight.ModelWeight(); item.Model = model; item.SendStatus = ""; item.Remark = "New"; item.UnitWeight = weight; item.CartonWeight = 0; item.Editor = editor; UnitOfWork uow = new UnitOfWork(); mvRepository.Add(item, uow); uow.Commit(); } } catch (FisException e) { logger.Error(e.mErrmsg, e); throw new Exception(e.mErrmsg); } catch (Exception e) { logger.Error(e.Message); throw new SystemException(e.Message); } finally { logger.Debug("(RCTOWeight)SetModelWeight end, Model:" + model); } }
/// <summary> /// /// </summary> /// <param name="executionContext"></param> /// <returns></returns> protected internal override ActivityExecutionStatus DoExecute(ActivityExecutionContext executionContext) { Carton carton = (Carton)CurrentSession.GetValue(Session.SessionKeys.Carton); if (carton == null) { throw new FisException("No Session Key [" + Session.SessionKeys.Carton + "] value"); } IList<IProduct> prodList = (IList<IProduct>)CurrentSession.GetValue(Session.SessionKeys.ProdList); IList<string> prodIdList = (IList<string>)CurrentSession.GetValue(Session.SessionKeys.NewScanedProductIDList); decimal actualCartonWeight = (decimal)CurrentSession.GetValue(ExtendSession.SessionKeys.ActualCartonWeight); decimal actualUnitWeight = (decimal)CurrentSession.GetValue(Session.SessionKeys.ActuralWeight); ICartonRepository cartonRep = RepositoryFactory.GetInstance().GetRepository<ICartonRepository, Carton>(); IProductRepository prodRep = RepositoryFactory.GetInstance().GetRepository<IProductRepository, IProduct>(); //4. 如果Product Model 的UnitWeight (IMES_GetData..ModelWeight) 属性不存在则记录该属性;如果该属性值的Udt 不是当天,则更新该记录的UnitWeightValue,Editor 和Udt; IProduct currentProduct = prodList[0]; IModelWeightRepository currentModelWeightRepository = RepositoryFactory.GetInstance().GetRepository<IModelWeightRepository, ModelWeight>(); ModelWeight currentModelWeight = currentModelWeightRepository.Find(currentProduct.Model); //ITC-1360-1299: 如果Product Model 的UnitWeight (IMES_GetData..ModelWeight)属性,没有新Insert或Update时,不需要更新(Insert)HP EDI 数据(PAK_SkuMasterWeight_FIS) CurrentSession.AddValue(Session.SessionKeys.IsCheckPass, false); if (currentModelWeight == null ) { ModelWeight newModelWeight = new ModelWeight(); newModelWeight.Model = currentProduct.Model; newModelWeight.UnitWeight = actualUnitWeight; newModelWeight.CartonWeight = actualCartonWeight; newModelWeight.SendStatus = ""; newModelWeight.Remark = "New"; newModelWeight.Editor = this.Editor; newModelWeight.Udt = DateTime.Now; currentModelWeightRepository.Add(newModelWeight, CurrentSession.UnitOfWork); CurrentSession.AddValue(Session.SessionKeys.IsCheckPass, true); CurrentSession.AddValue("SetWeight", newModelWeight.UnitWeight); } else if (currentModelWeight.UnitWeight.Equals(0)) { currentModelWeight.Model = currentProduct.Model; currentModelWeight.UnitWeight = actualUnitWeight; currentModelWeight.CartonWeight = actualCartonWeight; currentModelWeight.SendStatus = ""; currentModelWeight.Remark = "0"; currentModelWeight.Editor = this.Editor; currentModelWeight.Udt = DateTime.Now; currentModelWeightRepository.Update(currentModelWeight, CurrentSession.UnitOfWork); CurrentSession.AddValue(Session.SessionKeys.IsCheckPass, true); CurrentSession.AddValue("SetWeight", currentModelWeight.UnitWeight); } //ITC-1360-1302 //if (currentModelWeight.Udt.ToShortDateString().ToString() != DateTime.Now.ToShortDateString().ToString()) else if (currentModelWeight.Udt.ToShortDateString().ToString() != DateTime.Now.ToShortDateString().ToString() && carton.Status == CartonStatusEnum.Full) { currentModelWeight.Model = currentProduct.Model; currentModelWeight.Remark = currentModelWeight.UnitWeight.ToString(); currentModelWeight.UnitWeight = actualUnitWeight; currentModelWeight.CartonWeight = actualCartonWeight; currentModelWeight.SendStatus = ""; currentModelWeight.Editor = this.Editor; currentModelWeight.Udt = DateTime.Now; currentModelWeightRepository.Update(currentModelWeight, CurrentSession.UnitOfWork); CurrentSession.AddValue(Session.SessionKeys.IsCheckPass, true); CurrentSession.AddValue("SetWeight", currentModelWeight.UnitWeight); } //当 Product 为同机型机器当天的第50台Pass Unit Weight 站的机器,需要取这50台机器的Product.UnitWeight 的平均值,更新ModelWeight 对应记录的UnitWeight,Editor 和Udt //else //{ // IProductRepository productRepository = RepositoryFactory.GetInstance().GetRepository<IProductRepository, IProduct>(); // if (49 == productRepository.GetCountOfCurrentDayByModelAndStation(currentProduct.Model, "85")) // { // decimal avrWeight = productRepository.GetAverageModelWeightOfCurrentDay(currentProduct.Model, "85"); // decimal thisWeight = (decimal)CurrentSession.GetValue(Session.SessionKeys.ActuralWeight); // currentModelWeight.Model = currentProduct.Model; // currentModelWeight.UnitWeight = (avrWeight * 49 + thisWeight) / 50; // currentModelWeight.CartonWeight = actualCartonWeight; // currentModelWeight.Editor = this.Editor; // currentModelWeight.Udt = DateTime.Now; // currentModelWeightRepository.Update(currentModelWeight, CurrentSession.UnitOfWork); // CurrentSession.AddValue(Session.SessionKeys.IsCheckPass, true); // CurrentSession.AddValue("SetWeight", currentModelWeight.UnitWeight); // } //} return base.DoExecute(executionContext); }