Commit ce8b7225392bd255e6d95a44b1328d4ba10ea12f
1 parent
c5710b3992
Exists in
luanping
#fix:优化滦平月龄计算公式
Showing 4 changed files with 85 additions and 4 deletions
- platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEvaluationCriterionServiceImpl.java
- platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml
platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java
View file @
ce8b722
| ... | ... | @@ -1742,10 +1742,12 @@ |
| 1742 | 1742 | Date date = addMonth(birth, month); |
| 1743 | 1743 | int days = daysBetween(date, new Date()); |
| 1744 | 1744 | BigDecimal bg = new BigDecimal(1.0/30*days); |
| 1745 | - double doubleValue = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); | |
| 1745 | + double doubleValue = bg.setScale(1, BigDecimal.ROUND_HALF_EVEN).doubleValue(); | |
| 1746 | 1746 | return doubleValue; |
| 1747 | 1747 | } |
| 1748 | 1748 | |
| 1749 | + | |
| 1750 | + | |
| 1749 | 1751 | /** |
| 1750 | 1752 | * 身份证-获取出生日期 |
| 1751 | 1753 | * |
| 1752 | 1754 | |
| 1753 | 1755 | |
| ... | ... | @@ -1960,10 +1962,64 @@ |
| 1960 | 1962 | return calendar.get(Calendar.YEAR); |
| 1961 | 1963 | } |
| 1962 | 1964 | |
| 1965 | + /** | |
| 1966 | + * 计算月龄 int | |
| 1967 | + * @param birth | |
| 1968 | + * @param checkDate | |
| 1969 | + * @return | |
| 1970 | + */ | |
| 1971 | + public static double getDoubleBabyMonthAge(Date birth, Date checkDate) { | |
| 1972 | + if (birth == null) { | |
| 1973 | + return 0.0; | |
| 1974 | + } | |
| 1975 | + Calendar rightNow = Calendar.getInstance(); | |
| 1976 | + rightNow.setTime(checkDate); | |
| 1977 | + rightNow.add(Calendar.MONTH, -1); | |
| 1978 | + if (birth.getTime() > rightNow.getTime().getTime()) { | |
| 1979 | + int day = daysBetween(birth, checkDate); | |
| 1980 | + BigDecimal bg = new BigDecimal(day/30); | |
| 1981 | + double doubleValue = bg.setScale(1, BigDecimal.ROUND_HALF_EVEN).doubleValue(); | |
| 1982 | + return doubleValue; | |
| 1983 | + } | |
| 1984 | + Calendar rightNow1 = Calendar.getInstance(); | |
| 1985 | + rightNow1.setTime(checkDate); | |
| 1986 | + rightNow1.add(Calendar.YEAR, -1); | |
| 1963 | 1987 | |
| 1964 | - public static void main(String[] args) { | |
| 1965 | - System.out.println(DateUtil.parseYMDHMS(DateUtil.getyyyy_MM_dd(new Date(1704384000000L+1500000L)) )); | |
| 1966 | 1988 | |
| 1989 | + if (birth.getTime() > rightNow1.getTime().getTime()) { | |
| 1990 | + int month = getMonthSpace(birth, checkDate); | |
| 1991 | + Calendar yearNow = Calendar.getInstance(); | |
| 1992 | + yearNow.setTime(birth); | |
| 1993 | + yearNow.add(Calendar.MONTH, month); | |
| 1994 | + | |
| 1995 | + int day = daysBetween(yearNow.getTime(), checkDate); | |
| 1996 | + double doubleValue = 0; | |
| 1997 | + if (day != 0) { | |
| 1998 | + BigDecimal bg = new BigDecimal(day); | |
| 1999 | + doubleValue= bg.divide(new BigDecimal("30"),1, BigDecimal.ROUND_DOWN).doubleValue(); | |
| 2000 | + } | |
| 2001 | + | |
| 2002 | + if (month != 0) { | |
| 2003 | + doubleValue = doubleValue + month; | |
| 2004 | + } | |
| 2005 | + return doubleValue; | |
| 2006 | + } | |
| 2007 | + int year = getYearSpace(birth, checkDate); | |
| 2008 | + rightNow.setTime(checkDate); | |
| 2009 | + rightNow.add(Calendar.YEAR, year); | |
| 2010 | + | |
| 2011 | + int month = getMonthSpace1(birth, rightNow.getTime()); | |
| 2012 | + | |
| 2013 | + return Double.valueOf(year*12+month); | |
| 2014 | + } | |
| 2015 | + | |
| 2016 | + public static void main(String[] args) { | |
| 2017 | + //System.out.println(DateUtil.parseYMDHMS(DateUtil.getyyyy_MM_dd(new Date(1704384000000L+1500000L)) )); | |
| 2018 | + // double monthDay =getBabyAgeMonth(DateUtil.parseYMD("2023-03-12"),new Date())+getMonthDays(DateUtil.parseYMD("2023-03-2")); | |
| 2019 | + //getMonthDays() | |
| 2020 | + // System.out.println(getBabyMonthAge(DateUtil.parseYMD("2023-03-12"),new Date())); | |
| 2021 | + double monthDay =getDoubleBabyMonthAge(DateUtil.parseYMD("2023-08-25"),new Date()); | |
| 2022 | + System.out.println(monthDay); | |
| 1967 | 2023 | } |
| 1968 | 2024 | |
| 1969 | 2025 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java
View file @
ce8b722
| ... | ... | @@ -223,7 +223,7 @@ |
| 223 | 223 | */ |
| 224 | 224 | public void initUser(){ |
| 225 | 225 | Date date=new Date(); |
| 226 | - Date day= DateUtil.parseYMD("2024-03-25"); | |
| 226 | + Date day= DateUtil.parseYMD("2024-05-20"); | |
| 227 | 227 | if (date.compareTo(day)>0){ |
| 228 | 228 | UsersQuery usersQuery=new UsersQuery(); |
| 229 | 229 | usersQuery.setOrgId(2100001377); |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEvaluationCriterionServiceImpl.java
View file @
ce8b722
| ... | ... | @@ -745,7 +745,12 @@ |
| 745 | 745 | return new BaseResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg("儿童建档数据缺失"); |
| 746 | 746 | } |
| 747 | 747 | Integer checkMonth = DateUtil.getBabyAgeMonth(babyModel.getBirth(), new Date()); |
| 748 | + | |
| 748 | 749 | double monthDay = checkMonth+DateUtil.getMonthDays(babyModel.getBirth()); |
| 750 | + if ("2100001377".equals(hospitalId)){ | |
| 751 | + //滦平儿保月龄计算公式 | |
| 752 | + monthDay = DateUtil.getDoubleBabyMonthAge(babyModel.getBirth(),new Date()); | |
| 753 | + } | |
| 749 | 754 | paramModel.setName(babyModel.getName()); |
| 750 | 755 | paramModel.setGender(babyModel.getSex()); |
| 751 | 756 | paramModel.setBirth(babyModel.getBirth()); |
platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml
View file @
ce8b722
| ... | ... | @@ -703,7 +703,26 @@ |
| 703 | 703 | <property name="jobDetail" ref="weekSyncWork"></property> |
| 704 | 704 | <property name="cronExpression" value="0 0 9 * * ?"></property> |
| 705 | 705 | </bean> |
| 706 | + <!-- 配置一个触发器 0 0 17 * * ?--> | |
| 707 | + <bean id="bookbuildingSyncWorkTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> | |
| 708 | + <property name="jobDetail" ref="bookbuildingSyncWork"></property> | |
| 709 | + <property name="cronExpression" value="0 0 17 * * ?"></property> | |
| 710 | + </bean> | |
| 711 | + <bean id="initUserSyncWork" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> | |
| 712 | + <!-- 要调用的bean --> | |
| 713 | + <property name="targetObject" ref="accessPermissionFacade"></property> | |
| 714 | + <!-- 要调用的Method --> | |
| 715 | + <property name="targetMethod" value="initUser"></property> | |
| 716 | + <!-- 是否并发,false表示 如果发生错误也不影响下一次的调用 --> | |
| 717 | + <property name="concurrent" value="false"></property> | |
| 718 | + </bean> | |
| 706 | 719 | |
| 720 | + <!-- 配置一个触发器 0 0/10 * * * ?--> | |
| 721 | + <bean id="initUserSyncWorkTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> | |
| 722 | + <property name="jobDetail" ref="initUserSyncWork"></property> | |
| 723 | + <property name="cronExpression" value="0 0/10 * * * ?"></property> | |
| 724 | + </bean> | |
| 725 | + | |
| 707 | 726 | <!-- 总调度,用于启动定时器 --> |
| 708 | 727 | <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> |
| 709 | 728 | <property name="triggers" > |
| ... | ... | @@ -773,6 +792,7 @@ |
| 773 | 792 | <ref bean="bookbuildingSyncWorkTrigger"/> |
| 774 | 793 | <!-- 秦皇岛二院产检提醒--> |
| 775 | 794 | <ref bean="weekSyncWorkTrigger"/> |
| 795 | + <ref bean="initUserSyncWorkTrigger"/> | |
| 776 | 796 | </list> |
| 777 | 797 | </property> |
| 778 | 798 | </bean> |