|
@@ -128,6 +128,7 @@ public class GenerateYzService {
|
|
|
if (CollUtil.isEmpty(yzActOrderList)) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有可以生成的医嘱");
|
|
|
}
|
|
|
+ CommonUtil.BeanTrim(yzActOrderList);
|
|
|
//频率
|
|
|
List<YzOrderFrequency> yzOrderFrequencyList = dao.selectYzOrderFrequency();
|
|
|
CommonUtil.BeanTrim(yzOrderFrequencyList);
|
|
@@ -200,10 +201,12 @@ public class GenerateYzService {
|
|
|
}
|
|
|
}
|
|
|
//修改状态
|
|
|
- if(CollUtil.isNotEmpty(param.getUpdateStatusYzActOrders())){
|
|
|
- for(YzActOrder yzActOrder : param.getUpdateStatusYzActOrders()){
|
|
|
- dao.updateYzActOrderStatusFlag(yzActOrder);
|
|
|
- }
|
|
|
+ if(CollUtil.isNotEmpty(param.getUpdateStatusYzActOrders())) {
|
|
|
+ for (BigDecimal key : param.getUpdateStatusYzActOrders().keySet()) {
|
|
|
+ YzActOrder tempYzActOrder = param.getUpdateStatusYzActOrders().get(key);
|
|
|
+ log.info("修改状态医嘱 医嘱号={},状态={}", tempYzActOrder.getActOrderNo(), tempYzActOrder.getStatusFlag());
|
|
|
+ dao.updateYzActOrderStatusFlag(tempYzActOrder);
|
|
|
+ }
|
|
|
if(CollUtil.isNotEmpty(param.getYzActOccs())){
|
|
|
Set<BigDecimal> collect = param.getYzActOccs().stream().map(obj -> obj.getActOrderNo().abs()).collect(Collectors.toSet());
|
|
|
String yzActNos = CollUtil.join(collect, ",");
|
|
@@ -343,14 +346,14 @@ public class GenerateYzService {
|
|
|
if(item.getEndTime() != null && DateUtil.parseDateTime(DateUtil.formatDateTime(item.getEndTime())).getTime() <= addDateTime(DateUtil.formatDate(ldCurDay),itStartTime,true).getTime()){
|
|
|
item.setStatusFlag("5");
|
|
|
item.setStatusTime(item.getEndTime());
|
|
|
- param.getUpdateStatusYzActOrders().add(item);
|
|
|
+ param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
|
|
|
continue;
|
|
|
}
|
|
|
else{
|
|
|
if(item.getPerformanceTime()!= null && item.getEndTime()!=null && (DateUtil.parseDateTime(DateUtil.formatDateTime(item.getEndTime())).getTime() < addDateTime(DateUtil.formatDate(item.getPerformanceTime()),itStartTime,true).getTime())){
|
|
|
item.setStatusFlag("5");
|
|
|
item.setStatusTime(item.getEndTime());
|
|
|
- param.getUpdateStatusYzActOrders().add(item);
|
|
|
+ param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
|
|
|
}
|
|
|
}
|
|
|
if(item.getPerformanceTime()!= null && betweenDay(ldCurDay,item.getPerformanceTime(),true,false) >= 0){
|
|
@@ -422,12 +425,16 @@ public class GenerateYzService {
|
|
|
//执行频率为ALWAYS,IRREG,取执行时间为24小时的开始时间;
|
|
|
//这样的医嘱只产生一条执行;
|
|
|
Date occTimeTemp;
|
|
|
- if(DateUtil.between(now,addDateTime(DateUtil.formatDate(now), itStartTime, true), DateUnit.SECOND,false) > 0){
|
|
|
+ if(FREQ_CODE_ONCE.equals(item.getFrequCode())){
|
|
|
+ occTimeTemp = now;
|
|
|
+ }
|
|
|
+ else if(DateUtil.between(now,addDateTime(DateUtil.formatDate(now), itStartTime, true), DateUnit.SECOND,false) > 0){
|
|
|
occTimeTemp = addDateTime(LdCurDayNextStr, itStartTime, true);
|
|
|
- }else {
|
|
|
+ }
|
|
|
+ else {
|
|
|
occTimeTemp = addDateTime(ldCurDayStr, itStartTime, true);
|
|
|
}
|
|
|
- if(DateUtil.between(item.getStartTime(),occTimeTemp,DateUnit.SECOND,false) < 0 ){
|
|
|
+ if( DateUtil.between(item.getStartTime(), occTimeTemp, DateUnit.SECOND, false)< 0 ){
|
|
|
continue;
|
|
|
}
|
|
|
if(item.getEndTime() == null || occTimeTemp.getTime() <= parseDateTimeDay(item.getEndTime()).getTime()){
|
|
@@ -447,22 +454,22 @@ public class GenerateYzService {
|
|
|
if(NumberEnum.TWO.getCode().equals(item.getStatusFlag())){
|
|
|
item.setStatusFlag(NumberEnum.ThREE.getCode());
|
|
|
item.setStatusTime(DateUtil.parseDateTime(ldCurrent));
|
|
|
- param.getUpdateStatusYzActOrders().add(item);
|
|
|
+ param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
|
|
|
}
|
|
|
else if(NumberEnum.ThREE.getCode().equals(item.getStatusFlag())){
|
|
|
item.setStatusFlag(NumberEnum.FOUR.getCode());
|
|
|
item.setStatusTime(DateUtil.parseDateTime(ldCurrent));
|
|
|
- param.getUpdateStatusYzActOrders().add(item);
|
|
|
+ param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
|
|
|
}
|
|
|
else if(NumberEnum.FOUR.getCode().equals(item.getStatusFlag())){
|
|
|
item.setStatusTime(DateUtil.parseDateTime(ldCurrent));
|
|
|
- param.getUpdateStatusYzActOrders().add(item);
|
|
|
+ param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
|
|
|
}
|
|
|
if(FREQ_CODE_ONCE.equals(item.getFrequCode())){
|
|
|
item.setStatusFlag(NumberEnum.FIVE.getCode());
|
|
|
item.setStatusTime(DateUtil.parseDateTime(ldCurrent));
|
|
|
item.setEndTime(item.getStartTime());
|
|
|
- param.getUpdateStatusYzActOrders().add(item);
|
|
|
+ param.getUpdateStatusYzActOrders().put(item.getActOrderNo(),item);
|
|
|
}
|
|
|
}
|
|
|
|