Commit ce8b7225392bd255e6d95a44b1328d4ba10ea12f

Authored by zhangchao
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 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>