| | |
| | | } |
| | | |
| | | #region |
| | | |
| | | static object lockObj = new object(); |
| | | public string CreateCodeByRule(string ruleCode) |
| | | { |
| | | string code = string.Empty; |
| | | DateTime dataTime = DateTime.Now; |
| | | DateTime now = DateTime.Now; |
| | | |
| | | try |
| | | lock (lockObj) |
| | | { |
| | | Dt_CodeRuleConfig ruleConfig = _unitOfWorkManage.Db.Queryable<Dt_CodeRuleConfig>().Where(x => x.RuleCode == ruleCode).First(); |
| | | if (ruleConfig.ModifyDate != null) |
| | | { |
| | | dataTime = ruleConfig.ModifyDate.Value; |
| | | } |
| | | else |
| | | { |
| | | dataTime = ruleConfig.CreateDate; |
| | | } |
| | | string code = string.Empty; |
| | | DateTime dataTime = DateTime.Now; |
| | | DateTime now = DateTime.Now; |
| | | |
| | | if (now.Year == dataTime.Year && now.Month == dataTime.Month && now.Day == dataTime.Day) |
| | | try |
| | | { |
| | | now = dataTime; |
| | | ruleConfig.CurrentVal = Convert.ToInt32(ruleConfig.CurrentVal) + 1; |
| | | Dt_CodeRuleConfig ruleConfig = _unitOfWorkManage.Db.Queryable<Dt_CodeRuleConfig>().Where(x => x.RuleCode == ruleCode).First(); |
| | | if (ruleConfig.ModifyDate != null) |
| | | { |
| | | dataTime = ruleConfig.ModifyDate.Value; |
| | | } |
| | | else |
| | | { |
| | | dataTime = ruleConfig.CreateDate; |
| | | } |
| | | |
| | | if (now.Year == dataTime.Year && now.Month == dataTime.Month && now.Day == dataTime.Day) |
| | | { |
| | | now = dataTime; |
| | | ruleConfig.CurrentVal = Convert.ToInt32(ruleConfig.CurrentVal) + 1; |
| | | } |
| | | else |
| | | { |
| | | ruleConfig.CurrentVal = 1; |
| | | } |
| | | |
| | | ruleConfig.ModifyDate = DateTime.Now; |
| | | |
| | | code = ruleConfig.Format; |
| | | code = code.Replace($"[{CodeFormatTypeEnum.YYYY}]", now.Year.ToString().PadLeft(4, '0')); |
| | | code = code.Replace($"[{CodeFormatTypeEnum.MM}]", now.Month.ToString().PadLeft(2, '0')); |
| | | code = code.Replace($"[{CodeFormatTypeEnum.DD}]", now.Day.ToString().PadLeft(2, '0')); |
| | | code = code.Replace($"[{CodeFormatTypeEnum.ST}]", ruleConfig.StartStr.ToString()); |
| | | code = code.Replace($"[{CodeFormatTypeEnum.NUM}]", ruleConfig.CurrentVal.ToString().PadLeft(ruleConfig.Length, '0')); |
| | | |
| | | _unitOfWorkManage.Db.Updateable(ruleConfig).ExecuteCommand(); |
| | | } |
| | | else |
| | | catch (Exception ex) |
| | | { |
| | | ruleConfig.CurrentVal = 1; |
| | | throw new Exception(ex.Message); |
| | | } |
| | | |
| | | ruleConfig.ModifyDate = DateTime.Now; |
| | | |
| | | code = ruleConfig.Format; |
| | | code = code.Replace($"[{CodeFormatTypeEnum.YYYY}]", now.Year.ToString().PadLeft(4, '0')); |
| | | code = code.Replace($"[{CodeFormatTypeEnum.MM}]", now.Month.ToString().PadLeft(2, '0')); |
| | | code = code.Replace($"[{CodeFormatTypeEnum.DD}]", now.Day.ToString().PadLeft(2, '0')); |
| | | code = code.Replace($"[{CodeFormatTypeEnum.ST}]", ruleConfig.StartStr.ToString()); |
| | | code = code.Replace($"[{CodeFormatTypeEnum.NUM}]", ruleConfig.CurrentVal.ToString().PadLeft(ruleConfig.Length, '0')); |
| | | |
| | | _unitOfWorkManage.Db.Updateable(ruleConfig).ExecuteCommand(); |
| | | return code; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | } |
| | | return code; |
| | | } |
| | | #endregion |
| | | |
| | |
| | | throw new Exception($"转æ¢ååä½ä¸è½ä¸ºç©º"); |
| | | } |
| | | |
| | | Dt_MaterielInfo materielInfo = MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == materialCode); |
| | | if (materielInfo == null) |
| | | { |
| | | throw new Exception("åä½è½¬æ¢æ¶ç©æä¿¡æ¯æªæ¾å°"); |
| | | } |
| | | decimal ratio = 1; |
| | | |
| | | if (fromUnit.Trim().ToLower() == toUnit.Trim().ToLower()) |
| | | if (materielInfo.inventoryUOM.Trim().ToLower() == fromUnit.Trim().ToLower()) |
| | | { |
| | | return new UnitConvertResultDTO(materialCode, fromUnit, toUnit, quantity, ratio); |
| | | } |
| | | |
| | | Dt_MaterialUnit materialUnit = MaterialUnitService.Repository.QueryFirst(x => x.ItemNo == materialCode && x.FromUom == fromUnit && x.ToUom == toUnit); |
| | | if (materialUnit != null) |
| | | { |
| | | ratio = materialUnit.Ratio; |
| | | return new UnitConvertResultDTO(materialCode, fromUnit, toUnit, quantity, ratio); |
| | | } |
| | | else |
| | | { |
| | | materialUnit = MaterialUnitService.Repository.QueryFirst(x => x.ItemNo == materialCode && x.FromUom == toUnit && x.ToUom == fromUnit); |
| | | if (materialUnit == null) |
| | | Dt_MaterialUnit materialUnit = MaterialUnitService.Repository.QueryFirst(x => x.ItemNo == materialCode && x.FromUom == fromUnit); |
| | | if (materialUnit != null) |
| | | { |
| | | throw new Exception($"æªæ¾å°åä½è½¬æ¢å
³ç³»ï¼ç©æç¼å·ï¼{materialCode}ï¼è½¬æ¢ååä½ï¼{fromUnit}ï¼è½¬æ¢ååä½ï¼{toUnit}"); |
| | | toUnit = materialUnit.ToUom; |
| | | ratio = materialUnit.Ratio; |
| | | return new UnitConvertResultDTO(materialCode, fromUnit, toUnit, quantity, ratio); |
| | | } |
| | | ratio = materialUnit.Ratio; |
| | | return new UnitConvertResultDTO(materialCode, fromUnit, toUnit, quantity, ratio); |
| | | else |
| | | { |
| | | throw new Exception($"æªæ¾å°åä½è½¬æ¢å
³ç³»ï¼ç©æç¼å·ï¼{materialCode}ï¼è½¬æ¢ååä½ï¼{fromUnit}"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |