Commit 82ef3fec by 丁伟峰

增加了容量调整接口

1 parent 977ace08
...@@ -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.CapacityAdjustDTO;
import com.dituhui.pea.order.dto.CapacityStatQueryDTO; import com.dituhui.pea.order.dto.CapacityStatQueryDTO;
import com.dituhui.pea.order.service.OrgCapacityService; import com.dituhui.pea.order.service.OrgCapacityService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -25,4 +26,15 @@ public class CapacityController { ...@@ -25,4 +26,15 @@ public class CapacityController {
} }
return res; 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; 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.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;
import javax.validation.constraints.Pattern;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
...@@ -54,10 +50,9 @@ public class CapacityStatQueryDTO { ...@@ -54,10 +50,9 @@ public class CapacityStatQueryDTO {
private long capUsed; private long capUsed;
private long capLeft; private long capLeft;
@JsonDeserialize(using = LocalDateTimeDeserializer.class) @NotBlank(message = "日期字段不能为空")
@JsonSerialize(using = LocalDateTimeSerializer.class) @Pattern(regexp = "\\d{4}-\\d{2}-\\d{2}", message = "日期字段格式必须为 yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime= LocalDateTime.now();
private LocalDateTime updateTime;
private String date; private String date;
private long engineerNum; private long engineerNum;
...@@ -65,9 +60,5 @@ public class CapacityStatQueryDTO { ...@@ -65,9 +60,5 @@ public class CapacityStatQueryDTO {
private String levelValue; private String levelValue;
private String layer; private String layer;
private String showName; 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; package com.dituhui.pea.order.service;
import com.dituhui.pea.common.Result; 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.dto.CapacityStatQueryDTO;
public interface OrgCapacityService { public interface OrgCapacityService {
Result<?> getOrgCapacityData(CapacityStatQueryDTO.Request capacityStatQueryReqDTO); Result<?> getOrgCapacityData(CapacityStatQueryDTO.Request capacityStatQueryReqDTO);
Result<?> adjustCapacity(CapacityAdjustDTO.Request reqDTO);
} }
...@@ -2,6 +2,7 @@ package com.dituhui.pea.order.service.impl; ...@@ -2,6 +2,7 @@ package com.dituhui.pea.order.service.impl;
import com.dituhui.pea.common.Result; import com.dituhui.pea.common.Result;
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.CapacityStatQueryDTO; import com.dituhui.pea.order.dto.CapacityStatQueryDTO;
import com.dituhui.pea.order.entity.*; import com.dituhui.pea.order.entity.*;
import com.dituhui.pea.order.service.OrgCapacityService; import com.dituhui.pea.order.service.OrgCapacityService;
...@@ -12,6 +13,7 @@ import org.springframework.data.domain.PageRequest; ...@@ -12,6 +13,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
...@@ -32,6 +34,8 @@ public class OrgCapacityServiceImpl implements OrgCapacityService { ...@@ -32,6 +34,8 @@ public class OrgCapacityServiceImpl implements OrgCapacityService {
private OrgBranchDao orgBranchDao; private OrgBranchDao orgBranchDao;
@Autowired @Autowired
private CapacityTeamStatDao capacityTeamStatDao; private CapacityTeamStatDao capacityTeamStatDao;
@Autowired
private CapacityTeamAdjustDao capacityTeamAdjustDao;
@Override @Override
public Result<?> getOrgCapacityData(CapacityStatQueryDTO.Request reqDTO) { public Result<?> getOrgCapacityData(CapacityStatQueryDTO.Request reqDTO) {
...@@ -96,7 +100,7 @@ public class OrgCapacityServiceImpl implements OrgCapacityService { ...@@ -96,7 +100,7 @@ public class OrgCapacityServiceImpl implements OrgCapacityService {
.setCapTotal(e.getCapTotal()) .setCapTotal(e.getCapTotal())
.setCapUsed(e.getCapUsed()) .setCapUsed(e.getCapUsed())
.setCapLeft(e.getCapLeft()) .setCapLeft(e.getCapLeft())
.setCapAdjust(e.getCapAdjust()) .setCapAdjust((int)(e.getCapAdjust()*100))
.setEngineerNum(e.getEngineerCount()) .setEngineerNum(e.getEngineerCount())
.setUpdateTime(e.getUpdateTime()); .setUpdateTime(e.getUpdateTime());
} }
...@@ -108,4 +112,30 @@ public class OrgCapacityServiceImpl implements OrgCapacityService { ...@@ -108,4 +112,30 @@ public class OrgCapacityServiceImpl implements OrgCapacityService {
return Result.success(rs); 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!