Index: forgon-tools/src/main/java/com/forgon/tools/date/DateTools.java
===================================================================
diff -u -r14750 -r16046
--- forgon-tools/src/main/java/com/forgon/tools/date/DateTools.java (.../DateTools.java) (revision 14750)
+++ forgon-tools/src/main/java/com/forgon/tools/date/DateTools.java (.../DateTools.java) (revision 16046)
@@ -12,13 +12,16 @@
import org.apache.commons.lang.time.FastDateFormat;
import com.forgon.tools.TryOut;
+import org.apache.log4j.Logger;
public class DateTools {
public static String COMMON_DATE_HMS = "yyyy-MM-dd HH:mm:ss";
+ public static String COMMON_DATE_HM = "yyyy-MM-dd HH:mm";
public static String COMMON_DATE_PATTEN = "yyyy-MM-dd ";
private static String COMMON_DATE = "yyyy-MM-dd 12:00:00";
private static SimpleDateFormat sdf = new SimpleDateFormat(COMMON_DATE_PATTEN);
+ private static final Logger logger = Logger.getLogger(DateTools.class);
public int getSpaceMonthAmountOfTwoDate(String startDate, String endDate) {
int spaceMonthAmount = 0;
@@ -632,4 +635,154 @@
}
return defaultDate;
}
+
+
+
+
+ /**
+ * 根据格式返回对应的时间
+ * @param calendar 已经设置好的时间
+ * @param format 时间格式
+ * @return
+ */
+ public static String formatTime(Calendar calendar, String format) {
+ format = StringUtils.isNotBlank(format) ? format : COMMON_DATE_HMS;
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ return sdf.format(calendar.getTime());
+ }
+
+ public static void setStart(Calendar calendar) {
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ }
+
+ public static void setEnd(Calendar calendar) {
+ calendar.set(Calendar.HOUR_OF_DAY, 23);
+ calendar.set(Calendar.MINUTE, 59);
+ calendar.set(Calendar.SECOND, 59);
+ calendar.set(Calendar.MILLISECOND, 999);
+ }
+
+ /**
+ * 当天的开始时间
+ * @param format 时间格式
+ * @return
+ */
+ public static String startOfTodDay(String format) {
+ Calendar calendar = Calendar.getInstance();
+ setStart(calendar);
+ return formatTime(calendar, format);
+ }
+ /**
+ * 当天的结束时间
+ * @param format 时间格式
+ * @return
+ */
+ public static String endOfToday(String format) {
+ Calendar calendar = Calendar.getInstance();
+ setEnd(calendar);
+ return formatTime(calendar, format);
+ }
+
+ /**
+ * 当天早上的结束
+ * @param format
+ * @return
+ */
+ public static String endOfTodayMorning(String format) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.HOUR_OF_DAY, 11);
+ calendar.set(Calendar.MINUTE, 59);
+ calendar.set(Calendar.SECOND, 59);
+ calendar.set(Calendar.MILLISECOND, 999);
+ return formatTime(calendar, format);
+ }
+
+ /**
+ * 当天中午的开始
+ * @param format
+ * @return
+ */
+ public static String startOfTodayAfternoon(String format) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.HOUR_OF_DAY, 12);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ return formatTime(calendar, format);
+ }
+
+ /**
+ * 昨天的开始时间
+ * @return
+ */
+ public static String startOfYesterday(String format) {
+ Calendar calendar = Calendar.getInstance();
+ setStart(calendar);
+ calendar.add(Calendar.DATE, -1);
+ return formatTime(calendar, format);
+ }
+ /**
+ * 昨天的结束时间
+ * @return
+ */
+ public static String endOfYesterday(String format) {
+ Calendar calendar = Calendar.getInstance();
+ setEnd(calendar);
+ calendar.add(Calendar.DATE, -1);
+ return formatTime(calendar, format);
+ }
+
+ /**
+ * 两天前的开始时间
+ * @param format
+ * @return
+ */
+ public static String startOfBeforeYesterday(String format) {
+ Calendar calendar = Calendar.getInstance();
+ setStart(calendar);
+ calendar.add(Calendar.DATE, -2);
+ return formatTime(calendar, format);
+ }
+
+ /**
+ * 功能:获取本周的开始时间
+ */
+ public static String startOfThisWeek(String format) {
+ Calendar calendar = Calendar.getInstance();
+ setStart(calendar);
+ calendar.setFirstDayOfWeek(Calendar.MONDAY);
+ calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ return formatTime(calendar, format);
+ }
+ /**
+ * 功能:获取本周的结束时间
+ */
+ public static String endOfThisWeek(String format) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setFirstDayOfWeek(Calendar.MONDAY);
+ setEnd(calendar);
+ calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
+ return formatTime(calendar, format);
+ }
+
+ /**
+ * 按照格式尝试转换时间
+ * @param time 要转换的时间
+ * @param format 转换时间的格式
+ * @return
+ */
+ public static Date retryConvertTime(String time, String format){
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ try {
+ return sdf.parse(time);
+ }
+ catch (ParseException e) {
+ logger.error("尝试转换时间失败!",e);
+ throw new RuntimeException(e);
+ }
+ }
+
}
Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java
===================================================================
diff -u -r15835 -r16046
--- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 15835)
+++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 16046)
@@ -1,6 +1,6 @@
package com.forgon.disinfectsystem.recyclingapplication.service;
-import java.math.BigDecimal;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
@@ -20,8 +20,6 @@
import com.forgon.tools.StrutsParamUtils;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
-import net.sf.json.util.JSONBuilder;
-import net.sf.json.util.JSONStringer;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
@@ -32,14 +30,12 @@
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
-import org.apache.commons.lang3.time.DateUtils;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
-import org.jfree.util.Log;
import com.forgon.Constants;
import com.forgon.databaseadapter.service.DateQueryAdapter;
@@ -901,12 +897,18 @@
where3 = SqlBuilder.build_IN_Statement("type", SqlBuilder.NOT_IN,
excludeTypelist);
- Date out_beginTime = null;
- Date out_endTime = null;
+ // Date out_beginTime = null;
+ // Date out_endTime = null;
//如果申请时间范围不为空时
if (StringUtils.isNotBlank(applyDate)) {
- try{
+ try {
+ where7 = this.setTimeCondition(applyDate);
+ }
+ catch (Exception e) {
+ logger.error(e, e);
+ }
+ /* try{
SimpleDateFormat sdf = new SimpleDateFormat(DateTools.COMMON_DATE_HMS);
String[] applyDateArray = StringUtils.split(applyDate,";");
out_beginTime = sdf.parse(applyDateArray[0] + " 00:00:00");
@@ -917,8 +919,8 @@
dateQueryAdapter.dateAdapter(out_beginTime),
dateQueryAdapter.dateAdapter(out_endTime));
}catch (Exception e) {
- Log.error("" , e);
- }
+ Log.error("", e);
+ }*/
}
//如果物品类型不为空时
@@ -937,6 +939,37 @@
}
/**
+ * 设置时间的条件
+ * @param applyDate 要设定的时间
+ * @return
+ */
+ private String setTimeCondition(String applyDate){
+ SimpleDateFormat sdf = new SimpleDateFormat(DateTools.COMMON_DATE_HMS);
+ Date out_beginTime;
+ Date out_endTime;
+ String[] applyDateArray = StringUtils.split(applyDate,";");
+ try {
+ out_beginTime = sdf.parse(applyDateArray[0] + " 00:00:00");
+ out_endTime = sdf.parse(applyDateArray[1] + " 23:59:59");
+ }
+ catch (ParseException e) {
+ logger.info("转换时间失败,现在开始尝试重新转换");
+ //如果是时间转换出错,尝试重新再转换(花都区人民医院要求:发货时间精确到上午和下午的时分,而上面的方式精确到时分秒)
+ out_beginTime = DateTools.retryConvertTime(applyDateArray[0], DateTools.COMMON_DATE_HM);
+ out_endTime = DateTools.retryConvertTime(applyDateArray[1], DateTools.COMMON_DATE_HM);
+ logger.info("尝试转换时间成功");
+ }
+ String where7 = String.format("(applicationTime between %s and %s or po in (select recyclingApplication from RecyclingRecord where recyclingTime between %s and %s))",
+ dateQueryAdapter.dateAdapter(out_beginTime),
+ dateQueryAdapter.dateAdapter(out_endTime),
+ dateQueryAdapter.dateAdapter(out_beginTime),
+ dateQueryAdapter.dateAdapter(out_endTime));
+ logger.info("where7:" + where7);
+ return where7;
+ }
+
+
+ /**
* 根据时间段和多个orgUnitCoding获取未发货的发货计划单
*/
@Override
Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedView.jsp
===================================================================
diff -u -r15831 -r16046
--- ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedView.jsp (.../invoicePlanExtractedView.jsp) (revision 15831)
+++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedView.jsp (.../invoicePlanExtractedView.jsp) (revision 16046)
@@ -54,6 +54,8 @@
+
+
@@ -84,7 +86,7 @@