|
@@ -14,10 +14,17 @@ import thyyxxk.webserver.entity.inpatient.chargelist.ChargeItem;
|
|
|
import thyyxxk.webserver.entity.inpatient.chargelist.PatOverview;
|
|
|
import thyyxxk.webserver.service.externalhttp.SiZySrvc;
|
|
|
import thyyxxk.webserver.service.redislike.RedisLikeService;
|
|
|
+import thyyxxk.webserver.utils.DateUtil;
|
|
|
import thyyxxk.webserver.utils.ResultVoUtil;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.time.Instant;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneId;
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
|
+import java.time.temporal.Temporal;
|
|
|
import java.util.*;
|
|
|
|
|
|
@Slf4j
|
|
@@ -41,27 +48,34 @@ public class ChargeListService {
|
|
|
}
|
|
|
|
|
|
public BriefPatInfo selectBriefPatInfo(PatOverview overview) {
|
|
|
- BriefPatInfo briefPatInfo = dao.selectBriefPatInfo(overview.getPatNo(),
|
|
|
- overview.getTimes(), "zy_actpatient");
|
|
|
- if (null == briefPatInfo) {
|
|
|
- briefPatInfo = dao.selectBriefPatInfo(overview.getPatNo(), overview.getTimes(), "zy_inactpatient");
|
|
|
+ BriefPatInfo pat = dao.selectBriefPatInfo(
|
|
|
+ overview.getPatNo(), overview.getTimes(), "zy_actpatient");
|
|
|
+ if (null == pat) {
|
|
|
+ pat = dao.selectBriefPatInfo(
|
|
|
+ overview.getPatNo(), overview.getTimes(), "zy_inactpatient");
|
|
|
}
|
|
|
- if (null != briefPatInfo) {
|
|
|
- briefPatInfo.setMedtype(MedType.getName(briefPatInfo.getMedtype()));
|
|
|
- briefPatInfo.setDept(redis.getDeptName(briefPatInfo.getDept()));
|
|
|
- if (briefPatInfo.getDays() < 1) {
|
|
|
- briefPatInfo.setDays(1);
|
|
|
- }
|
|
|
- if (null == briefPatInfo.getEnddate()) {
|
|
|
- Date disdate = dao.selectActOrderDisDate(overview.getPatNo(), overview.getTimes());
|
|
|
- if (null == disdate) {
|
|
|
- briefPatInfo.setEnddate(new Date());
|
|
|
- } else {
|
|
|
- briefPatInfo.setEnddate(disdate);
|
|
|
- }
|
|
|
+ if (null == pat) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ pat.setMedtype(MedType.getName(pat.getMedtype()));
|
|
|
+ pat.setDept(redis.getDeptName(pat.getDept()));
|
|
|
+ if (null == pat.getEnddate()) {
|
|
|
+ String disdate = dao.selectActOrderDisDate(overview.getPatNo(), overview.getTimes());
|
|
|
+ if (null == disdate) {
|
|
|
+ pat.setEnddate(DateUtil.formatDate(new Date(), "yyyy-MM-dd"));
|
|
|
+ } else {
|
|
|
+ pat.setEnddate(disdate);
|
|
|
}
|
|
|
}
|
|
|
- return briefPatInfo;
|
|
|
+ pat.setDays(Math.abs(calculateDaysBetween(pat.getBegndate(), pat.getEnddate())));
|
|
|
+ return pat;
|
|
|
+ }
|
|
|
+
|
|
|
+ private int calculateDaysBetween(String date1Str, String date2Str) {
|
|
|
+ LocalDate date1 = LocalDate.parse(date1Str);
|
|
|
+ LocalDate date2 = LocalDate.parse(date2Str);
|
|
|
+ long daysBetween = ChronoUnit.DAYS.between(date1, date2);
|
|
|
+ return (int) (daysBetween + 1);
|
|
|
}
|
|
|
|
|
|
public Map<String, Object> selectChargeList(PatOverview overview) {
|