(#18)万事诚接口参数增加处方开始时间
This commit is contained in:
parent
2c1ff5b7cd
commit
5b6455cb91
|
@ -51,36 +51,52 @@ namespace Cmdjy.Controllers
|
|||
result.Code = EnumCode.Exception;
|
||||
result.Msg = "Count值错误。";
|
||||
}
|
||||
if(result.Code != EnumCode.Exception) {
|
||||
result.Prescriptions = new List<WsdPrescriptionInfo>();
|
||||
count = count > WebSettings.WsdMaxCount ? WebSettings.WsdMaxCount : count;
|
||||
var cache = CacheFactory.Cache;
|
||||
for(int i = start;i < start + count;i++) {
|
||||
//从缓存获取
|
||||
var pkey = $"Company:Id:{info.CompanyCode}:Pre:Id:{i}";
|
||||
var one = cache.GetData<WsdPrescriptionInfo>(pkey);
|
||||
if(one == null) {
|
||||
//从数据库获取处方信息
|
||||
one = getPrescriptionInfoFromDb(info.CompanyCode,i);
|
||||
//判断是否为
|
||||
//获取药品信息
|
||||
if(one != null) one.Drugs = getDrugInfoFromDb(one.Id);
|
||||
//存缓存
|
||||
if(one != null) cache.SetData(pkey,one);
|
||||
DateTime sd = DateTime.MinValue;
|
||||
if(!string.IsNullOrEmpty(info.StartDate) && !DateTime.TryParse(info.StartDate,out sd)) {
|
||||
result.Code = EnumCode.Exception;
|
||||
result.Msg = "StartDate值格式错误,请修改正确格式或不提供该值。";
|
||||
}
|
||||
sd = new DateTime(sd.Year,sd.Month,sd.Day,0,0,0);//起始时间
|
||||
int i = start;//起始编号
|
||||
int maxId = db.PrescriptionInfos.Max(m => m.Id);//最大Id
|
||||
count = Math.Min(WebSettings.WsdMaxCount,count);//最大获取数量
|
||||
result.MaxId = maxId.ToString();//处方最大Id
|
||||
result.Prescriptions = new List<WsdPrescriptionInfo>();
|
||||
var cache = CacheFactory.Cache;
|
||||
while(result.Code != EnumCode.Exception && i <= maxId && result.Prescriptions.Count < count) {
|
||||
var pkey = $"Company:Id:{info.CompanyCode}:Pre:Id:{i}";
|
||||
var one = cache.GetData<WsdPrescriptionInfo>(pkey);
|
||||
if(one == null) {
|
||||
//从数据库获取处方信息
|
||||
one = getPrescriptionInfoFromDb(info.CompanyCode,i);
|
||||
//判断是否为
|
||||
//获取药品信息
|
||||
if(one != null) one.Drugs = getDrugInfoFromDb(one.Id);
|
||||
//存缓存
|
||||
if(one != null) cache.SetData(pkey,one);
|
||||
}
|
||||
if(one != null) {
|
||||
//处方日期要大于起始日期
|
||||
if(DateTime.TryParse(one.PrescriptionDatatime,out DateTime odt)) {
|
||||
if(odt < sd) {
|
||||
one = null;
|
||||
}
|
||||
}
|
||||
if(needNull != null && one == null) {
|
||||
one = new WsdPrescriptionInfo {
|
||||
Type = WsdPrescriptionType.NullOrder,Id = i,
|
||||
};
|
||||
}
|
||||
if(one != null) {
|
||||
result.Prescriptions.Add(one);
|
||||
else {
|
||||
result.Code = EnumCode.Exception;
|
||||
result.Msg = $"处方({i})中PrescriptionDatatime错误。";
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(one != null) {
|
||||
result.Prescriptions.Add(one);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if(result.Code != EnumCode.Exception) {
|
||||
result.Code = EnumCode.Success;
|
||||
result.Count = result.Prescriptions.Where(m => m.Type != WsdPrescriptionType.NullOrder).Count();
|
||||
result.Msg = "";
|
||||
result.MaxId = db.PrescriptionInfos.Max(m => m.Id).ToString();
|
||||
result.More = db.PrescriptionInfos.Max(m => m.Id) > (start + count);
|
||||
}
|
||||
//编码:json串 + 加密信息
|
||||
|
|
|
@ -21,5 +21,9 @@
|
|||
/// 最大本次获取的处方数量。根据客户网络和服务器配置情况自行调整
|
||||
/// </summary>
|
||||
public string MaxCount { get; set; }
|
||||
/// <summary>
|
||||
/// 查询开始时间
|
||||
/// </summary>
|
||||
public string StartDate { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user