|  | @@ -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) {
 |