Commit 216fb8d4 by 丁伟峰

Merge branch 'feat-calender' into develop

2 parents c838ec90 6262844e
...@@ -2,6 +2,7 @@ package com.dituhui.pea.order.controller; ...@@ -2,6 +2,7 @@ package com.dituhui.pea.order.controller;
import com.dituhui.pea.common.BusinessException; import com.dituhui.pea.common.BusinessException;
import com.dituhui.pea.common.Result; 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.dto.EngineerCalendarDTO;
import com.dituhui.pea.order.service.EngineerCalendarService; import com.dituhui.pea.order.service.EngineerCalendarService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -41,4 +42,15 @@ public class EngineerCalendarController { ...@@ -41,4 +42,15 @@ public class EngineerCalendarController {
return res; 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; ...@@ -6,7 +6,7 @@ import org.springframework.data.jpa.repository.Query;
import java.util.List; 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") @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); List<CapacityEngineerCalendarEntity> findCalendarByEngineerCodeAndDateBetween(String engineerCode, String beginDate, String endDate);
......
package com.dituhui.pea.order.dto; 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; import java.time.LocalDateTime;
public class CalendarDetailDTO { public class CalendarDetailDTO {
...@@ -11,16 +18,31 @@ public class CalendarDetailDTO { ...@@ -11,16 +18,31 @@ public class CalendarDetailDTO {
} }
@lombok.Data @lombok.Data
@Accessors(chain = true)
public static class Result { public static class Result {
private String endTime;
private String engineerCode; private String engineerCode;
private String engineerName; private String engineerName;
private String operator; private String operator;
private String phone; private String phone;
private String planId;
private String remark; private String remark;
private LocalDateTime startTime;
private String type; private String type;
private String typeName; 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; private LocalDateTime updateTime;
} }
......
...@@ -49,6 +49,7 @@ public class EngineerCalendarDTO { ...@@ -49,6 +49,7 @@ public class EngineerCalendarDTO {
private String title; private String title;
private String type; private String type;
private String value; private String value;
private String planId;
} }
} }
...@@ -30,6 +30,9 @@ public class CapacityEngineerCalendarEntity { ...@@ -30,6 +30,9 @@ public class CapacityEngineerCalendarEntity {
@Column(nullable = false) @Column(nullable = false)
private String type; private String type;
@Column(name = "reason")
private String reason;
@Column(nullable = false) @Column(nullable = false)
private String memo; private String memo;
......
package com.dituhui.pea.order.service; package com.dituhui.pea.order.service;
import com.dituhui.pea.common.Result; 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.dto.EngineerCalendarDTO;
public interface EngineerCalendarService { public interface EngineerCalendarService {
...@@ -8,4 +9,6 @@ public interface EngineerCalendarService { ...@@ -8,4 +9,6 @@ public interface EngineerCalendarService {
Result<?> getEngineersCalendar(EngineerCalendarDTO.Request engineerCalendarReq); Result<?> getEngineersCalendar(EngineerCalendarDTO.Request engineerCalendarReq);
Result<?> getCalendarTypeList(); Result<?> getCalendarTypeList();
Result<?> getCalendarPlanDetail(CalendarDetailDTO.Request reqDTO);
} }
...@@ -4,10 +4,8 @@ import cn.hutool.core.date.LocalDateTimeUtil; ...@@ -4,10 +4,8 @@ import cn.hutool.core.date.LocalDateTimeUtil;
import com.dituhui.pea.common.Result; import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.DateUtils; import com.dituhui.pea.order.common.DateUtils;
import com.dituhui.pea.order.common.EngineerUtils; import com.dituhui.pea.order.common.EngineerUtils;
import com.dituhui.pea.order.dao.CapacityEngineerCalendarDao; import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dao.OrgTeamDao; import com.dituhui.pea.order.dto.CalendarDetailDTO;
import com.dituhui.pea.order.dao.OrgTeamEngineerDao;
import com.dituhui.pea.order.dao.PubParamsDao;
import com.dituhui.pea.order.dto.CalendarTypeDTO; import com.dituhui.pea.order.dto.CalendarTypeDTO;
import com.dituhui.pea.order.dto.EngineerCalendarDTO; import com.dituhui.pea.order.dto.EngineerCalendarDTO;
import com.dituhui.pea.order.entity.CapacityEngineerCalendarEntity; import com.dituhui.pea.order.entity.CapacityEngineerCalendarEntity;
...@@ -51,6 +49,8 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService { ...@@ -51,6 +49,8 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
private OrgTeamDao orgTeamDao; private OrgTeamDao orgTeamDao;
@Autowired @Autowired
private PubParamsDao pubParamsDao; private PubParamsDao pubParamsDao;
@Autowired
private EngineerInfoDao engineerInfoDao;
@Override @Override
public Result<?> getEngineersCalendar(EngineerCalendarDTO.Request req) { public Result<?> getEngineersCalendar(EngineerCalendarDTO.Request req) {
...@@ -98,6 +98,21 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService { ...@@ -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) { private List<EngineerCalendarDTO.Calendar> getOneEngineerCalendars(String engineerCode, String bdate, String edate) {
// 返回某一个技术员,日期范围内的日历列表 // 返回某一个技术员,日期范围内的日历列表
...@@ -124,9 +139,10 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService { ...@@ -124,9 +139,10 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
// 有配置 // 有配置
for (CapacityEngineerCalendarEntity e : configs.get(sDate)) { for (CapacityEngineerCalendarEntity e : configs.get(sDate)) {
EngineerCalendarDTO.Content content = new EngineerCalendarDTO.Content(); EngineerCalendarDTO.Content content = new EngineerCalendarDTO.Content();
content.setType("leave"); content.setType("LEAVE");
content.setTitle(e.getType()); content.setTitle(e.getType());
content.setValue(getCalendarDuration(e.getStartTime(), e.getEndTime())); content.setValue(getCalendarDuration(e.getStartTime(), e.getEndTime()));
content.setPlanId(e.getId().toString());
contents.add(content); contents.add(content);
} }
List<EngineerCalendarDTO.Content> mergedList = new ArrayList<>(); List<EngineerCalendarDTO.Content> mergedList = new ArrayList<>();
...@@ -171,15 +187,16 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService { ...@@ -171,15 +187,16 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
EngineerCalendarDTO.Content content = new EngineerCalendarDTO.Content(); EngineerCalendarDTO.Content content = new EngineerCalendarDTO.Content();
List<String> workdays = Arrays.asList(e.getWorkdays().split(",")); List<String> workdays = Arrays.asList(e.getWorkdays().split(","));
if (workdays.contains(String.valueOf(dayOfWeek))) { if (workdays.contains(String.valueOf(dayOfWeek))) {
content.setType("woring"); content.setType("WORKING");
content.setTitle(String.format("%s-%s", e.getWorkOn(), e.getWorkOff())); content.setTitle(String.format("%s-%s", e.getWorkOn(), e.getWorkOff()));
content.setValue(getCalendarDuration(e.getWorkOn(), e.getWorkOff())); content.setValue(getCalendarDuration(e.getWorkOn(), e.getWorkOff()));
} else { } else {
content.setType("rest"); content.setType("REST");
content.setTitle("休息"); content.setTitle("休息");
} }
calendar.setContent(Collections.singletonList(content)); calendar.setContent(Collections.singletonList(content));
return calendar; return calendar;
} }
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!