Commit b24e7a6f by 丁伟峰

与前端通信的DTO,日期时间统一为String格式

1 parent 6262844e
...@@ -2,13 +2,13 @@ package com.dituhui.pea.order.controller; ...@@ -2,13 +2,13 @@ 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.*;
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;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -46,11 +46,54 @@ public class EngineerCalendarController { ...@@ -46,11 +46,54 @@ public class EngineerCalendarController {
public Result<?> getCalendarPlanDetail(@Validated CalendarDetailDTO.Request reqDTO) { public Result<?> getCalendarPlanDetail(@Validated CalendarDetailDTO.Request reqDTO) {
Result<?> res = null; Result<?> res = null;
try { try {
res = engineerCalendarService.getCalendarPlanDetail(reqDTO); res = engineerCalendarService.getPlanDetail(reqDTO);
} catch (BusinessException e) { } catch (BusinessException e) {
return Result.failed(e.getMessage()); return Result.failed(e.getMessage());
} }
return res; return res;
} }
@PostMapping("/engineer/calendar/plan/update")
public Result<?> updateCalendarPlan(@Validated CalendarUpdateDTO.Request reqDTO) {
Result<?> res = null;
try {
res = engineerCalendarService.updatePlan(reqDTO);
} catch (BusinessException e) {
return Result.failed(e.getMessage());
}
return res;
}
@PostMapping("/engineer/calendar/plan/delete")
public Result<?> deleteCalendarPlan(@Validated CalendarDeleteDTO.Request reqDTO) {
Result<?> res = null;
try {
res = engineerCalendarService.deletePlan(reqDTO);
} catch (BusinessException e) {
return Result.failed(e.getMessage());
}
return res;
}
@PostMapping("/engineer/calendar/batch/add")
public Result<?> BatchAddPlan(@Validated CalendarBatAddDTO.Request reqDTO) {
Result<?> res = null;
try {
res = engineerCalendarService.batchAddPlan(reqDTO);
} catch (BusinessException e) {
return Result.failed(e.getMessage());
}
return res;
}
@GetMapping("/engineer/calendar/plan/num")
public Result<?> getEngineerPlanNum(@Validated CalendarQueryNumDTO.Request reqDTO) {
Result<?> res = null;
try {
res = engineerCalendarService.queryEngineerPlanNum(reqDTO);
} catch (BusinessException e) {
return Result.failed(e.getMessage());
}
return res;
}
} }
...@@ -4,10 +4,17 @@ import com.dituhui.pea.order.entity.CapacityEngineerCalendarEntity; ...@@ -4,10 +4,17 @@ import com.dituhui.pea.order.entity.CapacityEngineerCalendarEntity;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
public interface CapacityEngineerCalendarDao extends JpaRepository<CapacityEngineerCalendarEntity, Integer> { 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);
CapacityEngineerCalendarEntity getByPlanId(String planId);
@Query("select count(*) from CapacityEngineerCalendarEntity a where a.type = :type and a.startTime >= :startDate and a.endTime <= :endDate and a.engineerCode in :engineers")
Integer queryEngineerPlanNum(List<String> engineers, LocalDateTime startDate, LocalDateTime endDate, String type);
} }
package com.dituhui.pea.order.dto; package com.dituhui.pea.order.dto;
import com.fasterxml.jackson.annotation.JsonFormat; 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 lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import static com.dituhui.pea.order.config.OrderConfig.DEFAULT_PAGE_SIZE; import static com.dituhui.pea.order.config.OrderConfig.DEFAULT_PAGE_SIZE;
...@@ -44,10 +39,8 @@ public class BusinessSkillListDTO { ...@@ -44,10 +39,8 @@ public class BusinessSkillListDTO {
public static class Content { public static class Content {
private String brand; private String brand;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime; private String createTime;
private Boolean gasCert; private Boolean gasCert;
private String layerId; private String layerId;
private String layerName; private String layerName;
...@@ -64,9 +57,7 @@ public class BusinessSkillListDTO { ...@@ -64,9 +57,7 @@ public class BusinessSkillListDTO {
private String type; private String type;
private String typeCategory; private String typeCategory;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime; private String updateTime;
} }
} }
package com.dituhui.pea.order.dto; package com.dituhui.pea.order.dto;
import com.fasterxml.jackson.annotation.JsonFormat; 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 lombok.experimental.Accessors;
import java.time.LocalDateTime;
public class CalendarDetailDTO { public class CalendarDetailDTO {
@lombok.Data @lombok.Data
...@@ -30,20 +24,14 @@ public class CalendarDetailDTO { ...@@ -30,20 +24,14 @@ public class CalendarDetailDTO {
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") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime; private String startTime;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime; private String endTime;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime; private String updateTime;
} }
} }
package com.dituhui.pea.order.dto; package com.dituhui.pea.order.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.List;
public class CalendarQueryNumDTO { public class CalendarQueryNumDTO {
@lombok.Data @lombok.Data
public static class Request { public static class Request {
private String code; private List<String> engineerCodes;
private String message; private String type;
private Result result; @JsonFormat(pattern = "yyyy-MM-dd")
private String startDate;
@JsonFormat(pattern = "yyyy-MM-dd")
private String endDate;
} }
@lombok.Data @lombok.Data
......
package com.dituhui.pea.order.dto; package com.dituhui.pea.order.dto;
import com.fasterxml.jackson.annotation.JsonFormat; 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.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.time.LocalDate;
public class CapacityAdjustDTO { public class CapacityAdjustDTO {
...@@ -20,15 +13,11 @@ public class CapacityAdjustDTO { ...@@ -20,15 +13,11 @@ public class CapacityAdjustDTO {
@NotNull(message = "teamId不能为空") @NotNull(message = "teamId不能为空")
private String teamId; private String teamId;
@JsonDeserialize(using = LocalDateDeserializer.class)
@JsonSerialize(using = LocalDateSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate startDate; private String startDate;
@JsonDeserialize(using = LocalDateDeserializer.class)
@JsonSerialize(using = LocalDateSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate endDate; private String endDate;
private Integer capAdjust; private Integer capAdjust;
} }
......
package com.dituhui.pea.order.dto; package com.dituhui.pea.order.dto;
import com.dituhui.pea.order.common.DateUtils;
import com.dituhui.pea.order.config.OrderConfig; import com.dituhui.pea.order.config.OrderConfig;
import com.fasterxml.jackson.annotation.JsonFormat; 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 lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
...@@ -54,10 +51,8 @@ public class CapacityStatQueryDTO { ...@@ -54,10 +51,8 @@ public class CapacityStatQueryDTO {
private long capUsed; private long capUsed;
private long capLeft; private long capLeft;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime; private String updateTime;
private String date; private String date;
private long engineerNum; private long engineerNum;
...@@ -67,7 +62,7 @@ public class CapacityStatQueryDTO { ...@@ -67,7 +62,7 @@ public class CapacityStatQueryDTO {
private String showName; private String showName;
public Content(){ public Content(){
updateTime = LocalDateTime.now(); updateTime = DateUtils.formatDateTime(LocalDateTime.now());
} }
} }
} }
...@@ -4,13 +4,8 @@ package com.dituhui.pea.order.dto; ...@@ -4,13 +4,8 @@ package com.dituhui.pea.order.dto;
import com.dituhui.pea.order.config.OrderConfig; import com.dituhui.pea.order.config.OrderConfig;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.time.LocalDate;
import java.util.List; import java.util.List;
...@@ -25,10 +20,8 @@ public class EngineersGanttDTO { ...@@ -25,10 +20,8 @@ public class EngineersGanttDTO {
private Integer page = OrderConfig.DEFAULT_PAGE_INDEX; private Integer page = OrderConfig.DEFAULT_PAGE_INDEX;
private Integer size = OrderConfig.DEFAULT_PAGE_SIZE; private Integer size = OrderConfig.DEFAULT_PAGE_SIZE;
@JsonDeserialize(using = LocalDateDeserializer.class)
@JsonSerialize(using = LocalDateSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate date; private String date;
private List<String> engineerCodes; private List<String> engineerCodes;
private List<String> branchIds; private List<String> branchIds;
private List<String> groupIds; private List<String> groupIds;
......
...@@ -3,14 +3,9 @@ package com.dituhui.pea.order.dto; ...@@ -3,14 +3,9 @@ package com.dituhui.pea.order.dto;
import com.dituhui.pea.order.common.DateUtils; import com.dituhui.pea.order.common.DateUtils;
import com.dituhui.pea.order.config.OrderConfig; import com.dituhui.pea.order.config.OrderConfig;
import com.fasterxml.jackson.annotation.JsonFormat; 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 lombok.experimental.Accessors;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import static com.dituhui.pea.order.config.OrderConfig.PATTERN_DATE; import static com.dituhui.pea.order.config.OrderConfig.PATTERN_DATE;
...@@ -30,7 +25,7 @@ public class OrderChangeListDTO { ...@@ -30,7 +25,7 @@ public class OrderChangeListDTO {
private String levelValue; private String levelValue;
private int page = OrderConfig.DEFAULT_PAGE_INDEX; private int page = OrderConfig.DEFAULT_PAGE_INDEX;
private int size = OrderConfig.DEFAULT_PAGE_SIZE; private int size = OrderConfig.DEFAULT_PAGE_SIZE;
private String date = DateUtils.formatDate(LocalDate.now(), PATTERN_DATE); private String date = DateUtils.formatDate(LocalDate.now());
/** /**
* 排序 * 排序
*/ */
...@@ -73,9 +68,7 @@ public class OrderChangeListDTO { ...@@ -73,9 +68,7 @@ public class OrderChangeListDTO {
/** /**
* 更新时间 * 更新时间
*/ */
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime; private String updateTime;
} }
} }
...@@ -27,6 +27,10 @@ public class CapacityEngineerCalendarEntity { ...@@ -27,6 +27,10 @@ public class CapacityEngineerCalendarEntity {
@Column(name = "end_time", nullable = false) @Column(name = "end_time", nullable = false)
private LocalDateTime endTime; private LocalDateTime endTime;
@Column(name = "plan_id")
private String planId;
@Column(nullable = false) @Column(nullable = false)
private String type; private String type;
......
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.*;
import com.dituhui.pea.order.dto.EngineerCalendarDTO;
public interface EngineerCalendarService { public interface EngineerCalendarService {
...@@ -10,5 +9,13 @@ public interface EngineerCalendarService { ...@@ -10,5 +9,13 @@ public interface EngineerCalendarService {
Result<?> getCalendarTypeList(); Result<?> getCalendarTypeList();
Result<?> getCalendarPlanDetail(CalendarDetailDTO.Request reqDTO); Result<?> getPlanDetail(CalendarDetailDTO.Request reqDTO);
Result<?> updatePlan(CalendarUpdateDTO.Request reqDTO);
Result<?> deletePlan(CalendarDeleteDTO.Request reqDTO);
Result<?> batchAddPlan(CalendarBatAddDTO.Request reqDTO);
Result<?> queryEngineerPlanNum(CalendarQueryNumDTO.Request reqDTO);
} }
...@@ -5,9 +5,7 @@ import com.dituhui.pea.common.Result; ...@@ -5,9 +5,7 @@ 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.*; import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dto.CalendarDetailDTO; import com.dituhui.pea.order.dto.*;
import com.dituhui.pea.order.dto.CalendarTypeDTO;
import com.dituhui.pea.order.dto.EngineerCalendarDTO;
import com.dituhui.pea.order.entity.CapacityEngineerCalendarEntity; import com.dituhui.pea.order.entity.CapacityEngineerCalendarEntity;
import com.dituhui.pea.order.entity.EngineerInfoEntity; import com.dituhui.pea.order.entity.EngineerInfoEntity;
import com.dituhui.pea.order.entity.OrgTeamEntity; import com.dituhui.pea.order.entity.OrgTeamEntity;
...@@ -99,8 +97,8 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService { ...@@ -99,8 +97,8 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
} }
@Override @Override
public Result<?> getCalendarPlanDetail(CalendarDetailDTO.Request reqDTO) { public Result<?> getPlanDetail(CalendarDetailDTO.Request reqDTO) {
CapacityEngineerCalendarEntity entity = capacityEngineerCalendarDao.getById(Integer.parseInt(reqDTO.getPlanId())); CapacityEngineerCalendarEntity entity = capacityEngineerCalendarDao.getByPlanId(reqDTO.getPlanId());
EngineerInfoEntity engineerInfo = engineerInfoDao.getByEngineerCode(entity.getEngineerCode()); EngineerInfoEntity engineerInfo = engineerInfoDao.getByEngineerCode(entity.getEngineerCode());
CalendarDetailDTO.Result rs = new CalendarDetailDTO.Result(); CalendarDetailDTO.Result rs = new CalendarDetailDTO.Result();
rs.setPlanId(entity.getId().toString()); rs.setPlanId(entity.getId().toString());
...@@ -108,11 +106,71 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService { ...@@ -108,11 +106,71 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
rs.setEngineerName(engineerInfo.getName()); rs.setEngineerName(engineerInfo.getName());
rs.setType(entity.getType()); rs.setType(entity.getType());
rs.setTypeName(entity.getReason()); rs.setTypeName(entity.getReason());
rs.setStartTime(entity.getStartTime()); rs.setStartTime(DateUtils.formatDateTime(entity.getStartTime()));
rs.setEndTime(entity.getEndTime()); rs.setEndTime(DateUtils.formatDateTime(entity.getEndTime()));
return Result.success(rs); return Result.success(rs);
} }
@Override
public Result<?> updatePlan(CalendarUpdateDTO.Request reqDTO) {
CapacityEngineerCalendarEntity entity = capacityEngineerCalendarDao.getByPlanId(reqDTO.getPlanId());
if (entity == null) {
return Result.failed("日历配置信息不存在");
}
// todo 业务检查,暂时只需要检查日期时间必须为将来; 后面还需要检查配置项是否与其他配置项在时间上有交叉
LocalDateTime time1 = fixFrontDatetime(reqDTO.getStartTime());
LocalDateTime time2 = fixFrontDatetime(reqDTO.getEndTime());
if (time1.isAfter(time2)) {
return Result.failed("开始/结束时间输入错误");
}
if (time1.isBefore(LocalDateTime.now()) || time2.isBefore(LocalDateTime.now())) {
return Result.failed("只能更新未来时间");
}
entity.setStartTime(time1);
entity.setEndTime(time2);
entity.setMemo(reqDTO.getRemark());
// todo 操作员信息
capacityEngineerCalendarDao.save(entity);
return Result.success(null);
}
@Override
public Result<?> deletePlan(CalendarDeleteDTO.Request reqDTO) {
CapacityEngineerCalendarEntity entity = capacityEngineerCalendarDao.getByPlanId(reqDTO.getPlanId());
if (entity == null) {
return Result.failed("日历配置信息不存在");
}
capacityEngineerCalendarDao.delete(entity);
return Result.success(null);
}
@Override
public Result<?> batchAddPlan(CalendarBatAddDTO.Request reqDTO) {
if (reqDTO.getIsAllday() == 1) {
// 如果是全天只需要填写日期yyyy-MM-dd;否则填写日期+时间 yyyy-MM-dd HH:mm
}
return null;
}
@Override
public Result<?> queryEngineerPlanNum(CalendarQueryNumDTO.Request reqDTO) {
if (reqDTO.getEngineerCodes().isEmpty()) {
return Result.failed("没有选中工程师");
}
LocalDateTime startDate = LocalDate.parse(reqDTO.getStartDate()).atTime(LocalTime.MIDNIGHT);
LocalDateTime endDate = LocalDate.parse(reqDTO.getEndDate()).atTime(LocalTime.MIDNIGHT);
Integer num = capacityEngineerCalendarDao.queryEngineerPlanNum(reqDTO.getEngineerCodes(), startDate, endDate, reqDTO.getType());
CalendarQueryNumDTO.Result rs = new CalendarQueryNumDTO.Result();
rs.setPlanNum(num);
return Result.success(rs);
}
private LocalDateTime fixFrontDatetime(String s) {
return LocalDateTime.parse(s);
}
private List<EngineerCalendarDTO.Calendar> getOneEngineerCalendars(String engineerCode, String bdate, String edate) { private List<EngineerCalendarDTO.Calendar> getOneEngineerCalendars(String engineerCode, String bdate, String edate) {
// 返回某一个技术员,日期范围内的日历列表 // 返回某一个技术员,日期范围内的日历列表
...@@ -139,6 +197,7 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService { ...@@ -139,6 +197,7 @@ 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.setPlanId(e.getPlanId());
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()));
...@@ -197,6 +256,4 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService { ...@@ -197,6 +256,4 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
calendar.setContent(Collections.singletonList(content)); calendar.setContent(Collections.singletonList(content));
return calendar; return calendar;
} }
} }
...@@ -13,6 +13,7 @@ import org.apache.commons.lang3.StringUtils; ...@@ -13,6 +13,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -46,13 +47,13 @@ public class EngineerGanttServiceImpl implements EngineerGanttService { ...@@ -46,13 +47,13 @@ public class EngineerGanttServiceImpl implements EngineerGanttService {
// 按日期返回技术员们当天的服务甘特图,不需要翻页 // 按日期返回技术员们当天的服务甘特图,不需要翻页
log.info("getEngineersGanttList: {}", reqDTO); log.info("getEngineersGanttList: {}", reqDTO);
List<String> engineerCodes = reqDTO.getEngineerCodes(); List<String> engineerCodes = reqDTO.getEngineerCodes();
if (engineerCodes == null || engineerCodes.size() == 0) { if (engineerCodes == null || engineerCodes.isEmpty()) {
// 需要根据levelType/levelValue/brandIds/branchIds/groupIds/teamIds/key,后端查询匹配 // 需要根据levelType/levelValue/brandIds/branchIds/groupIds/teamIds/key,后端查询匹配
engineerCodes = findEngineers(reqDTO.getLevelType(), reqDTO.getLevelValue(), reqDTO.getBranchIds(), reqDTO.getGroupIds(), reqDTO.getTeamIds(), reqDTO.getKey()); engineerCodes = findEngineers(reqDTO.getLevelType(), reqDTO.getLevelValue(), reqDTO.getBranchIds(), reqDTO.getGroupIds(), reqDTO.getTeamIds(), reqDTO.getKey());
log.info("根据多条件,查询返回符合条件的技术员列表:{}", engineerCodes); log.info("根据多条件,查询返回符合条件的技术员列表:{}", engineerCodes);
} }
List<OrderInfoEntity> orders = orderInfoDao.findByDtAndEngineerCodeIn(reqDTO.getDate(), engineerCodes); List<OrderInfoEntity> orders = orderInfoDao.findByDtAndEngineerCodeIn(LocalDate.parse(reqDTO.getDate()), engineerCodes);
HashMap<String, List<EngineersGanttDTO.Slot>> mapEngineers = new HashMap<>(); HashMap<String, List<EngineersGanttDTO.Slot>> mapEngineers = new HashMap<>();
for (OrderInfoEntity order : orders) { for (OrderInfoEntity order : orders) {
// 服务工单本体 // 服务工单本体
...@@ -117,7 +118,7 @@ public class EngineerGanttServiceImpl implements EngineerGanttService { ...@@ -117,7 +118,7 @@ public class EngineerGanttServiceImpl implements EngineerGanttService {
.setEngineerName(engineerInfo.getName()) .setEngineerName(engineerInfo.getName())
.setGrade(engineerInfo.getGrade()); .setGrade(engineerInfo.getGrade());
CapacityEngineerStatEntity capacityEngineerStat = capacityEngineerStatDao.getByWorkdayAndEngineerCode(DateUtils.formatDate(reqDTO.getDate()), engineerCode); CapacityEngineerStatEntity capacityEngineerStat = capacityEngineerStatDao.getByWorkdayAndEngineerCode(reqDTO.getDate(), engineerCode);
if (capacityEngineerStat == null) { if (capacityEngineerStat == null) {
log.warn("技术员当日的容量数据不存在,{}{}", engineerCode, reqDTO.getDate()); log.warn("技术员当日的容量数据不存在,{}{}", engineerCode, reqDTO.getDate());
} else { } else {
...@@ -133,7 +134,7 @@ public class EngineerGanttServiceImpl implements EngineerGanttService { ...@@ -133,7 +134,7 @@ public class EngineerGanttServiceImpl implements EngineerGanttService {
engineers.sort(Comparator.comparing(EngineersGanttDTO.GanttChart::getEngineerName)); engineers.sort(Comparator.comparing(EngineersGanttDTO.GanttChart::getEngineerName));
EngineersGanttDTO.Result res = new EngineersGanttDTO.Result(); EngineersGanttDTO.Result res = new EngineersGanttDTO.Result();
res.setDate(DateUtils.formatDate(reqDTO.getDate())).setEngineers(engineers); res.setDate(reqDTO.getDate()).setEngineers(engineers);
return Result.success(res); return Result.success(res);
} }
......
package com.dituhui.pea.order.service.impl; package com.dituhui.pea.order.service.impl;
import com.dituhui.pea.common.Result; import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.DateUtils;
import com.dituhui.pea.order.dao.*; import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dto.CapacityAdjustDTO; import com.dituhui.pea.order.dto.CapacityAdjustDTO;
import com.dituhui.pea.order.dto.CapacityStatQueryDTO; import com.dituhui.pea.order.dto.CapacityStatQueryDTO;
...@@ -87,7 +88,7 @@ public class OrgCapacityServiceImpl implements OrgCapacityService { ...@@ -87,7 +88,7 @@ public class OrgCapacityServiceImpl implements OrgCapacityService {
.setCapUsed(e.getCapUsedTotal()) .setCapUsed(e.getCapUsedTotal())
.setCapLeft(e.getCapLeft()) .setCapLeft(e.getCapLeft())
.setEngineerNum(e.getEngineerCount()) .setEngineerNum(e.getEngineerCount())
.setUpdateTime(e.getUpdateTime()); .setUpdateTime(DateUtils.formatDateTime(e.getUpdateTime()));
} else { } else {
// group查询,是capacity_team_stat // group查询,是capacity_team_stat
CapacityTeamStatEntity e = (CapacityTeamStatEntity) item; CapacityTeamStatEntity e = (CapacityTeamStatEntity) item;
...@@ -102,7 +103,7 @@ public class OrgCapacityServiceImpl implements OrgCapacityService { ...@@ -102,7 +103,7 @@ public class OrgCapacityServiceImpl implements OrgCapacityService {
.setCapLeft(e.getCapLeft()) .setCapLeft(e.getCapLeft())
.setCapAdjust(e.getCapAdjust()) .setCapAdjust(e.getCapAdjust())
.setEngineerNum(e.getEngineerCount()) .setEngineerNum(e.getEngineerCount())
.setUpdateTime(e.getUpdateTime()); .setUpdateTime(DateUtils.formatDateTime(e.getUpdateTime()));
} }
contents.add(content); contents.add(content);
} }
...@@ -115,12 +116,13 @@ public class OrgCapacityServiceImpl implements OrgCapacityService { ...@@ -115,12 +116,13 @@ public class OrgCapacityServiceImpl implements OrgCapacityService {
@Override @Override
public Result<?> adjustCapacity(CapacityAdjustDTO.Request reqDTO) { public Result<?> adjustCapacity(CapacityAdjustDTO.Request reqDTO) {
if (reqDTO.getStartDate().isBefore(LocalDate.now())) { if (LocalDate.parse(reqDTO.getStartDate()).isBefore(LocalDate.now())) {
return Result.failed("日期不能小于当天"); return Result.failed("日期不能小于当天");
} }
// 遍历 startDate 到 endDate 之间的所有日期 // 遍历 startDate 到 endDate 之间的所有日期
LocalDate currentDate = reqDTO.getStartDate(); LocalDate currentDate = LocalDate.parse(reqDTO.getStartDate());
while (!currentDate.isAfter(reqDTO.getEndDate())) { LocalDate endDate = LocalDate.parse(reqDTO.getEndDate());
while (!currentDate.isAfter(endDate)) {
float adjuest = (float) (reqDTO.getCapAdjust() / 100.0); float adjuest = (float) (reqDTO.getCapAdjust() / 100.0);
ajustCapacityByDate(reqDTO.getTeamId(), currentDate, adjuest); ajustCapacityByDate(reqDTO.getTeamId(), currentDate, adjuest);
currentDate = currentDate.plusDays(1); // 增加一天 currentDate = currentDate.plusDays(1); // 增加一天
......
...@@ -3,6 +3,7 @@ package com.dituhui.pea.order.service.impl; ...@@ -3,6 +3,7 @@ package com.dituhui.pea.order.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dituhui.pea.common.Result; import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.DateUtils;
import com.dituhui.pea.order.dao.*; import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dto.OrderChangeListDTO; import com.dituhui.pea.order.dto.OrderChangeListDTO;
import com.dituhui.pea.order.dto.WorkbenchSummaryResp; import com.dituhui.pea.order.dto.WorkbenchSummaryResp;
...@@ -56,7 +57,7 @@ public class WorkbenchServiceImpl implements WorkbenchService { ...@@ -56,7 +57,7 @@ public class WorkbenchServiceImpl implements WorkbenchService {
.setOperator(entity.getOperator()) .setOperator(entity.getOperator())
.setDescription(entity.getDescription()) .setDescription(entity.getDescription())
.setMemo(entity.getMemo()) .setMemo(entity.getMemo())
.setUpdateTime(entity.getUpdateTime()); .setUpdateTime(DateUtils.formatDateTime(entity.getUpdateTime()));
contents.add(content); contents.add(content);
} }
OrderChangeListDTO.Result rs = new OrderChangeListDTO.Result(); OrderChangeListDTO.Result rs = new OrderChangeListDTO.Result();
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!