Commit 82ef3fec by 丁伟峰

增加了容量调整接口

1 parent 977ace08
......@@ -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.CapacityAdjustDTO;
import com.dituhui.pea.order.dto.CapacityStatQueryDTO;
import com.dituhui.pea.order.service.OrgCapacityService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -25,4 +26,15 @@ public class CapacityController {
}
return res;
}
@PostMapping("/capacity/adjust")
public Result<?> capacityAdjust(@Validated CapacityAdjustDTO.Request reqDTO) {
Result<?> res = null;
try {
res = orgCapacityService.adjustCapacity(reqDTO);
} catch (BusinessException e) {
return Result.failed(e.getMessage());
}
return res;
}
}
package com.dituhui.pea.order.dao;
import com.dituhui.pea.order.entity.CapacityTeamAdjustEntity;
import org.springframework.data.repository.CrudRepository;
import java.time.LocalDate;
public interface CapacityTeamAdjustDao extends CrudRepository<CapacityTeamAdjustEntity, Long> {
CapacityTeamAdjustEntity findByTeamIdAndWorkday(String teamId, LocalDate date);
}
package com.dituhui.pea.order.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.time.LocalDate;
public class CapacityAdjustDTO {
@Data
public static class Request {
@NotNull(message = "teamId不能为空")
private String teamId;
@NotBlank(message = "日期字段不能为空")
@Pattern(regexp = "\\d{4}-\\d{2}-\\d{2}", message = "日期字段格式必须为 yyyy-MM-dd")
private LocalDate beginDate;
@NotBlank(message = "日期字段不能为空")
@Pattern(regexp = "\\d{4}-\\d{2}-\\d{2}", message = "日期字段格式必须为 yyyy-MM-dd")
private LocalDate endDate;
private Integer capAdjust;
}
}
package com.dituhui.pea.order.dto;
import com.dituhui.pea.order.config.OrderConfig;
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 javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.time.LocalDateTime;
import java.util.List;
......@@ -54,10 +50,9 @@ public class CapacityStatQueryDTO {
private long capUsed;
private long capLeft;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
@NotBlank(message = "日期字段不能为空")
@Pattern(regexp = "\\d{4}-\\d{2}-\\d{2}", message = "日期字段格式必须为 yyyy-MM-dd")
private LocalDateTime updateTime= LocalDateTime.now();
private String date;
private long engineerNum;
......@@ -65,9 +60,5 @@ public class CapacityStatQueryDTO {
private String levelValue;
private String layer;
private String showName;
public Content(){
updateTime = LocalDateTime.now();
}
}
}
package com.dituhui.pea.order.entity;
import lombok.Data;
import javax.persistence.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Entity
@Data
@Table(name = "capacity_team_adjust")
public class CapacityTeamAdjustEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private LocalDate workday;
private String teamId;
private float capAdjust;
private String memo;
private LocalDateTime createTime;
private LocalDateTime updateTime;
private String layer;
// Constructors, getters, setters, and other methods can be added as needed
// Default constructor
}
package com.dituhui.pea.order.service;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.dto.CapacityAdjustDTO;
import com.dituhui.pea.order.dto.CapacityStatQueryDTO;
public interface OrgCapacityService {
Result<?> getOrgCapacityData(CapacityStatQueryDTO.Request capacityStatQueryReqDTO);
Result<?> adjustCapacity(CapacityAdjustDTO.Request reqDTO);
}
......@@ -2,6 +2,7 @@ package com.dituhui.pea.order.service.impl;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dto.CapacityAdjustDTO;
import com.dituhui.pea.order.dto.CapacityStatQueryDTO;
import com.dituhui.pea.order.entity.*;
import com.dituhui.pea.order.service.OrgCapacityService;
......@@ -12,6 +13,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
......@@ -32,6 +34,8 @@ public class OrgCapacityServiceImpl implements OrgCapacityService {
private OrgBranchDao orgBranchDao;
@Autowired
private CapacityTeamStatDao capacityTeamStatDao;
@Autowired
private CapacityTeamAdjustDao capacityTeamAdjustDao;
@Override
public Result<?> getOrgCapacityData(CapacityStatQueryDTO.Request reqDTO) {
......@@ -96,7 +100,7 @@ public class OrgCapacityServiceImpl implements OrgCapacityService {
.setCapTotal(e.getCapTotal())
.setCapUsed(e.getCapUsed())
.setCapLeft(e.getCapLeft())
.setCapAdjust(e.getCapAdjust())
.setCapAdjust((int)(e.getCapAdjust()*100))
.setEngineerNum(e.getEngineerCount())
.setUpdateTime(e.getUpdateTime());
}
......@@ -108,4 +112,30 @@ public class OrgCapacityServiceImpl implements OrgCapacityService {
return Result.success(rs);
}
@Override
public Result<?> adjustCapacity(CapacityAdjustDTO.Request reqDTO) {
if (reqDTO.getBeginDate().isBefore(LocalDate.now())) {
return Result.failed("日期不能小于当天");
}
// 遍历 startDate 到 endDate 之间的所有日期
LocalDate currentDate = reqDTO.getBeginDate();
while (!currentDate.isAfter(reqDTO.getEndDate())) {
float adjuest = (float) (reqDTO.getCapAdjust() / 100.0);
ajustCapacityByDate(reqDTO.getTeamId(), currentDate, adjuest);
currentDate = currentDate.plusDays(1); // 增加一天
}
return null;
}
void ajustCapacityByDate(String teamId, LocalDate date, Float adjust) {
CapacityTeamAdjustEntity entity = capacityTeamAdjustDao.findByTeamIdAndWorkday(teamId, date);
if (entity == null) {
entity = new CapacityTeamAdjustEntity();
entity.setTeamId(teamId);
entity.setWorkday(date);
}
entity.setCapAdjust(adjust);
capacityTeamAdjustDao.save(entity);
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!