wangbo 4 anos atrás
pai
commit
373ac62bd3

+ 3 - 2
operation_manager/src/main/java/com/huaxu/order/service/WorkOrderManageService.java

@@ -9,6 +9,7 @@ import com.huaxu.order.dto.WorkOrderManageDto;
 import com.huaxu.order.entity.WorkOrderManage;
 import org.apache.ibatis.annotations.Param;
 
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -92,7 +93,7 @@ public interface WorkOrderManageService {
     Map<String,Object> workOrderStatistics(@Param("order") WorkOrderManageDto workOrderManageDto);
 
 
-    List<Map<String,Object>> eventMonthStatistics(@Param("order") WorkOrderManageDto workOrderManageDto);
+    List<Map<String,Object>> eventMonthStatistics(@Param("order") WorkOrderManageDto workOrderManageDto) throws ParseException;
 
     List<Map<String,Object>> eventYearStatistics(@Param("order") WorkOrderManageDto workOrderManageDto);
     /**
@@ -133,7 +134,7 @@ public interface WorkOrderManageService {
     /**
      * 判单次数月统计
      */
-    List<Map<String,Object>> dispatchTimesMonthStatistics(@Param("order") WorkOrderManageDto workOrderManageDto,@Param("idList") List<Integer> idList);
+    List<Map<String,Object>> dispatchTimesMonthStatistics(@Param("order") WorkOrderManageDto workOrderManageDto,@Param("idList") List<Integer> idList) throws ParseException;
 
     /**
      * 判单次数年统计

+ 27 - 23
operation_manager/src/main/java/com/huaxu/order/service/impl/WorkOrderManageServiceImpl.java

@@ -10,10 +10,11 @@ import com.huaxu.order.dto.WorkOrderManageDto;
 import com.huaxu.order.entity.WorkOrderManage;
 import com.huaxu.order.service.WorkOrderManageService;
 import com.huaxu.util.UserUtil;
-import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 
@@ -160,13 +161,12 @@ public class WorkOrderManageServiceImpl implements WorkOrderManageService {
     }
 
     @Override
-    public List<Map<String, Object>> eventMonthStatistics(WorkOrderManageDto workOrderManageDto) {
-        String strMonth = workOrderManageDto.getStartDate().substring(5,7);
-        int days = getDaysByYearMonth(Integer.parseInt(strMonth));
+    public List<Map<String, Object>> eventMonthStatistics(WorkOrderManageDto workOrderManageDto) throws ParseException {
+        int days = differentDaysByMillisecond(workOrderManageDto.getStartDate(),workOrderManageDto.getEndDate());
         List<Map<String,Object>> result = new ArrayList<Map<String,Object>>();
         List<Map<String,Object>> list = workOrderManageMapper.eventMonthStatistics(workOrderManageDto);
         for(int i=0; i<days; i++) {
-            String strDate = workOrderManageDto.getStartDate().substring(0, 7) + String.format("-%02d", i + 1);
+            String strDate =  subDay(workOrderManageDto.getStartDate(),i);
             Map<String, Object> data = new HashMap<>();
             data.put("数量", 0);
             data.put("日期", strDate);
@@ -252,13 +252,12 @@ public class WorkOrderManageServiceImpl implements WorkOrderManageService {
     }
 
     @Override
-    public List<Map<String, Object>> dispatchTimesMonthStatistics(WorkOrderManageDto workOrderManageDto,List<Integer> idList) {
-        String strMonth = workOrderManageDto.getStartDate().substring(5,7);
-        int days = getDaysByYearMonth(Integer.parseInt(strMonth));
+    public List<Map<String, Object>> dispatchTimesMonthStatistics(WorkOrderManageDto workOrderManageDto,List<Integer> idList) throws ParseException {
+        int days = differentDaysByMillisecond(workOrderManageDto.getStartDate(),workOrderManageDto.getEndDate());
         List<Map<String,Object>> result = new ArrayList<Map<String,Object>>();
         List<Map<String,Object>> list = workOrderManageMapper.dispatchTimesMonthStatistics(workOrderManageDto,idList);
         for(int i=0; i<days; i++) {
-            String strDate = workOrderManageDto.getStartDate().substring(0, 7) + String.format("-%02d", i + 1);
+            String strDate =  subDay(workOrderManageDto.getStartDate(),i);
             Map<String, Object> data = new HashMap<>();
             data.put("数量", 0);
             data.put("日期", strDate);
@@ -304,22 +303,27 @@ public class WorkOrderManageServiceImpl implements WorkOrderManageService {
         return workOrderManageMapper.findWorkFlowById(id);
     }
 
-    /**
-     *获取某月有多少天
-     */
-    private int getDaysByYearMonth(int month) {
-
-        Calendar a =Calendar.getInstance();
-
-        a.set(Calendar.MONTH, month- 1);
-
-        a.set(Calendar.DATE, 1);
 
-        a.roll(Calendar.DATE,-1);
-
-        int maxDate =a.get(Calendar.DATE);
+    public int differentDaysByMillisecond(String date1,String date2) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date dt1 = sdf.parse(date1);
+        Date dt2 = sdf.parse(date2);
+        int days = (int) ((dt2.getTime() - dt1.getTime()) / (1000*3600*24));
+        return days;
+    }
 
-        return maxDate;
 
+    /**
+     *日期加一天
+     */
+    private String subDay(String date, int n) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date dt = sdf.parse(date);
+        Calendar rightNow = Calendar.getInstance();
+        rightNow.setTime(dt);
+        rightNow.add(Calendar.DATE, n);
+        Date dt1 = rightNow.getTime();
+        String reStr = sdf.format(dt1);
+        return reStr;
     }
 }

+ 23 - 19
sms_water/src/main/java/com/huaxu/service/SceneService.java

@@ -31,6 +31,8 @@ import javax.annotation.Resource;
 
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 import static com.google.common.collect.Lists.newArrayList;
@@ -459,13 +461,12 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         return sceneMapper.selectAlarmSceneAndDevice(sceneEntity, startDate, endDate);
     }
 
-    public List<Map<String,Object>> selectMonthAlarmTimes(@Param("scene") SceneEntity sceneEntity, @Param("startDate") String startDate, @Param("endDate") String endDate,@Param("sort") int sort){
-        String strMonth = startDate.substring(5,7);
-        int days = getDaysByYearMonth(Integer.parseInt(strMonth));
+    public List<Map<String,Object>> selectMonthAlarmTimes(@Param("scene") SceneEntity sceneEntity, @Param("startDate") String startDate, @Param("endDate") String endDate,@Param("sort") int sort) throws ParseException {
+        int days = differentDaysByMillisecond(startDate,endDate);
         List<Map<String,Object>> result = new ArrayList<Map<String,Object>>();
         List<Map<String,Object>> list = sceneMapper.selectMonthAlarmTimes(sceneEntity,startDate,endDate,sort);
         for(int i=0; i<days; i++) {
-            String strDate = startDate.substring(0, 7) + String.format("-%02d", i + 1);
+            String strDate =  subDay(startDate,i);
             Map<String, Object> data = new HashMap<>();
             data.put("数量", 0);
             data.put("日期", strDate);
@@ -507,23 +508,26 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         return sceneMapper.selectAlarmDeviceIdBySenceId(id);
     }
 
+    public int differentDaysByMillisecond(String date1,String date2) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date dt1 = sdf.parse(date1);
+        Date dt2 = sdf.parse(date2);
+        int days = (int) ((dt2.getTime() - dt1.getTime()) / (1000*3600*24));
+        return days;
+    }
+
     /**
-     *获取某月有多少天
+     *日期加一
      */
-    private int getDaysByYearMonth(int month) {
-
-        Calendar a =Calendar.getInstance();
-
-        a.set(Calendar.MONTH, month- 1);
-
-        a.set(Calendar.DATE, 1);
-
-        a.roll(Calendar.DATE,-1);
-
-        int maxDate =a.get(Calendar.DATE);
-
-        return maxDate;
-
+    private String subDay(String date, int n) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date dt = sdf.parse(date);
+        Calendar rightNow = Calendar.getInstance();
+        rightNow.setTime(dt);
+        rightNow.add(Calendar.DATE, n);
+        Date dt1 = rightNow.getTime();
+        String reStr = sdf.format(dt1);
+        return reStr;
     }