Commit 216fb8d4 by 丁伟峰

Merge branch 'feat-calender' into develop

2 parents c838ec90 6262844e
......@@ -2,6 +2,7 @@ package com.dituhui.pea.order.controller;
import com.dituhui.pea.common.BusinessException;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.dto.CalendarDetailDTO;
import com.dituhui.pea.order.dto.EngineerCalendarDTO;
import com.dituhui.pea.order.service.EngineerCalendarService;
import lombok.extern.slf4j.Slf4j;
......@@ -41,4 +42,15 @@ public class EngineerCalendarController {
return res;
}
@GetMapping("/engineer/calendar/plan/detail")
public Result<?> getCalendarPlanDetail(@Validated CalendarDetailDTO.Request reqDTO) {
Result<?> res = null;
try {
res = engineerCalendarService.getCalendarPlanDetail(reqDTO);
} catch (BusinessException e) {
return Result.failed(e.getMessage());
}
return res;
}
}
......@@ -6,7 +6,7 @@ import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface CapacityEngineerCalendarDao extends JpaRepository<CapacityEngineerCalendarEntity, Long> {
public interface CapacityEngineerCalendarDao extends JpaRepository<CapacityEngineerCalendarEntity, Integer> {
@Query("select a from CapacityEngineerCalendarEntity a where a.engineerCode=:engineerCode and a.workday between :beginDate and :endDate")
List<CapacityEngineerCalendarEntity> findCalendarByEngineerCodeAndDateBetween(String engineerCode, String beginDate, String endDate);
......
package com.dituhui.pea.order.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
public class CalendarDetailDTO {
......@@ -11,16 +18,31 @@ public class CalendarDetailDTO {
}
@lombok.Data
@Accessors(chain = true)
public static class Result {
private String endTime;
private String engineerCode;
private String engineerName;
private String operator;
private String phone;
private String planId;
private String remark;
private LocalDateTime startTime;
private String type;
private String typeName;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
}
......
......@@ -49,6 +49,7 @@ public class EngineerCalendarDTO {
private String title;
private String type;
private String value;
private String planId;
}
}
......@@ -30,6 +30,9 @@ public class CapacityEngineerCalendarEntity {
@Column(nullable = false)
private String type;
@Column(name = "reason")
private String reason;
@Column(nullable = false)
private String memo;
......
package com.dituhui.pea.order.service;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.dto.CalendarDetailDTO;
import com.dituhui.pea.order.dto.EngineerCalendarDTO;
public interface EngineerCalendarService {
......@@ -8,4 +9,6 @@ public interface EngineerCalendarService {
Result<?> getEngineersCalendar(EngineerCalendarDTO.Request engineerCalendarReq);
Result<?> getCalendarTypeList();
Result<?> getCalendarPlanDetail(CalendarDetailDTO.Request reqDTO);
}
......@@ -4,10 +4,8 @@ import cn.hutool.core.date.LocalDateTimeUtil;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.DateUtils;
import com.dituhui.pea.order.common.EngineerUtils;
import com.dituhui.pea.order.dao.CapacityEngineerCalendarDao;
import com.dituhui.pea.order.dao.OrgTeamDao;
import com.dituhui.pea.order.dao.OrgTeamEngineerDao;
import com.dituhui.pea.order.dao.PubParamsDao;
import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dto.CalendarDetailDTO;
import com.dituhui.pea.order.dto.CalendarTypeDTO;
import com.dituhui.pea.order.dto.EngineerCalendarDTO;
import com.dituhui.pea.order.entity.CapacityEngineerCalendarEntity;
......@@ -51,6 +49,8 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
private OrgTeamDao orgTeamDao;
@Autowired
private PubParamsDao pubParamsDao;
@Autowired
private EngineerInfoDao engineerInfoDao;
@Override
public Result<?> getEngineersCalendar(EngineerCalendarDTO.Request req) {
......@@ -98,6 +98,21 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
}
}
@Override
public Result<?> getCalendarPlanDetail(CalendarDetailDTO.Request reqDTO) {
CapacityEngineerCalendarEntity entity = capacityEngineerCalendarDao.getById(Integer.parseInt(reqDTO.getPlanId()));
EngineerInfoEntity engineerInfo = engineerInfoDao.getByEngineerCode(entity.getEngineerCode());
CalendarDetailDTO.Result rs = new CalendarDetailDTO.Result();
rs.setPlanId(entity.getId().toString());
rs.setEngineerCode(engineerInfo.getEngineerCode());
rs.setEngineerName(engineerInfo.getName());
rs.setType(entity.getType());
rs.setTypeName(entity.getReason());
rs.setStartTime(entity.getStartTime());
rs.setEndTime(entity.getEndTime());
return Result.success(rs);
}
private List<EngineerCalendarDTO.Calendar> getOneEngineerCalendars(String engineerCode, String bdate, String edate) {
// 返回某一个技术员,日期范围内的日历列表
......@@ -124,9 +139,10 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
// 有配置
for (CapacityEngineerCalendarEntity e : configs.get(sDate)) {
EngineerCalendarDTO.Content content = new EngineerCalendarDTO.Content();
content.setType("leave");
content.setType("LEAVE");
content.setTitle(e.getType());
content.setValue(getCalendarDuration(e.getStartTime(), e.getEndTime()));
content.setPlanId(e.getId().toString());
contents.add(content);
}
List<EngineerCalendarDTO.Content> mergedList = new ArrayList<>();
......@@ -171,15 +187,16 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
EngineerCalendarDTO.Content content = new EngineerCalendarDTO.Content();
List<String> workdays = Arrays.asList(e.getWorkdays().split(","));
if (workdays.contains(String.valueOf(dayOfWeek))) {
content.setType("woring");
content.setType("WORKING");
content.setTitle(String.format("%s-%s", e.getWorkOn(), e.getWorkOff()));
content.setValue(getCalendarDuration(e.getWorkOn(), e.getWorkOff()));
} else {
content.setType("rest");
content.setType("REST");
content.setTitle("休息");
}
calendar.setContent(Collections.singletonList(content));
return calendar;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!