|
@@ -12,6 +12,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneId;
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -47,17 +50,19 @@ public class GanttServiceImpl implements GanttService {
|
|
|
/**
|
|
|
* 根据条件获取gantt
|
|
|
*
|
|
|
- * @param startTime
|
|
|
+ * @param searchDate
|
|
|
* @param endTime
|
|
|
* @param factoryId
|
|
|
* @param workshopId
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public R getListByCondition(Date startTime, Date endTime, String factoryId, String workshopId) {
|
|
|
+ public R getListByCondition(Date searchDate, String factoryId, String workshopId) {
|
|
|
+ List<Date> searchDateList = getSearchDate(searchDate);
|
|
|
List<String> workShopIdList = StringUtils.isNotBlank(workshopId) ? Arrays.asList(workshopId.split(",")) : new ArrayList<>();
|
|
|
// 获取 工序作业信息
|
|
|
- List<GanttVos> apsProcessOperationProcessEquDos = apsProcessOperationProcessEquDao.getGanttDataList(startTime, endTime, factoryId, workShopIdList);
|
|
|
+ List<GanttVos> apsProcessOperationProcessEquDos = apsProcessOperationProcessEquDao.getGanttDataList(searchDateList.get(0),
|
|
|
+ searchDateList.get(1), factoryId, workShopIdList);
|
|
|
// 需要返回给前端的数据
|
|
|
List<ScheduleGanttVo> resultVo = new ArrayList<>();
|
|
|
if (apsProcessOperationProcessEquDos.isEmpty()) {
|
|
@@ -140,6 +145,10 @@ public class GanttServiceImpl implements GanttService {
|
|
|
dateVo.setProcessdetailids(ganttVos.stream().map(GanttVos::getId).distinct().collect(Collectors.joining(",")));
|
|
|
dateVo.setProcessids(ganttVos.stream().map(GanttVos::getProcessid).distinct().collect(Collectors.joining(",")));
|
|
|
dateVo.setGanttVos(ganttVos);
|
|
|
+ dateVo.setWorkstatus(ganttVos.stream().map(GanttVos::getWorkstatus).distinct().collect(Collectors.joining(",")));
|
|
|
+ dateVo.setLockmark(ganttVos.stream().map(GanttVos::getLockmark).distinct().collect(Collectors.joining(",")));
|
|
|
+ dateVo.setConflict(ganttVos.get(0).getConflict());
|
|
|
+ dateVo.setProductionorderid(ganttVos.stream().map(GanttVos::getProductionorderid).collect(Collectors.joining(",")));
|
|
|
resultVo.add(dateVo);
|
|
|
}
|
|
|
}
|
|
@@ -202,4 +211,24 @@ public class GanttServiceImpl implements GanttService {
|
|
|
}
|
|
|
return dateFormat.format(date);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据传入日期获取 该日期的前6天和后6天
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<Date> getSearchDate(Date date){
|
|
|
+
|
|
|
+ LocalDateTime now = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
|
|
+ // 获取前6天的0点0分01秒
|
|
|
+ LocalDateTime sixDaysAgoStart = now.minusDays(6).truncatedTo(ChronoUnit.DAYS).plusSeconds(1);
|
|
|
+
|
|
|
+
|
|
|
+ // 获取后6天的23点59分59秒
|
|
|
+ LocalDateTime sixDaysLaterEnd = now.plusDays(6).truncatedTo(ChronoUnit.DAYS).plusHours(23).plusMinutes(59).plusSeconds(59);
|
|
|
+ List<Date> returnDate = new ArrayList();
|
|
|
+ returnDate.add(Date.from(sixDaysAgoStart.atZone(ZoneId.systemDefault()).toInstant()));
|
|
|
+ returnDate.add(Date.from(sixDaysLaterEnd.atZone(ZoneId.systemDefault()).toInstant()));
|
|
|
+ return returnDate;
|
|
|
+ }
|
|
|
}
|