Commit cb88d91a authored by cq990612's avatar cq990612

优化代码结构

parent 547fc00a
...@@ -44,22 +44,6 @@ public interface WorkTimeOrderService { ...@@ -44,22 +44,6 @@ public interface WorkTimeOrderService {
*/ */
List<WorkTimeOrder> getByDayToDto(Integer userId, Date workDay); List<WorkTimeOrder> getByDayToDto(Integer userId, Date workDay);
/**
* 功能:工时填报
*
* @param dto 自定义填报类
* @return dto
*/
List<WorkTimeOrderDto> add(CreateWorkOrderDto dto);
/**
* 功能: 驳回重新填报
*
* @param dto 自定义DTO
* @return 填报信息
*/
List<WorkTimeOrderDto> update(CreateWorkOrderDto dto);
/** /**
...@@ -124,7 +108,7 @@ public interface WorkTimeOrderService { ...@@ -124,7 +108,7 @@ public interface WorkTimeOrderService {
* @param createWorkOrderDto * @param createWorkOrderDto
* @return * @return
*/ */
List<WorkTimeOrderDto> addTest(CreateWorkOrderDto createWorkOrderDto); List<WorkTimeOrderDto> addOrder(CreateWorkOrderDto createWorkOrderDto);
/** /**
......
...@@ -22,7 +22,6 @@ import org.springframework.stereotype.Service; ...@@ -22,7 +22,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
...@@ -186,28 +185,6 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -186,28 +185,6 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
return workTimeOrders; return workTimeOrders;
} }
/**
* 功能:工时填报
*
* @param dto 自定义填报类
* @return dto
*/
@Transactional
@Override
public List<WorkTimeOrderDto> add(@RequestBody CreateWorkOrderDto dto) {
log.info("WorkTimeOrderServiceImpl[]add[]input.param.CreateWorkOrderDto:{}" + dto);
if (null == dto || CollectionUtils.isEmpty(dto.getWorkTimeOrders())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_INFO_IS_NULL);
}
// 1.检查工单
this.checkWorkOrderInfo(dto.getWorkTimeOrders());
// 2.保存工单信息
List<WorkTimeOrderDto> result = this.saveWorkOrderInfo(dto.getWorkTimeOrders());
log.info("WorkOrderServiceImpl[]add[]add.success");
return result;
}
/** /**
* 功能:测试添加 * 功能:测试添加
...@@ -217,7 +194,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -217,7 +194,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
*/ */
@Transactional @Transactional
@Override @Override
public List<WorkTimeOrderDto> addTest(CreateWorkOrderDto createWorkOrderDto) { public List<WorkTimeOrderDto> addOrder(CreateWorkOrderDto createWorkOrderDto) {
log.info("WorkTimeOderServiceImpl[]addTest[]input.param.creatWorkOrderDto" + createWorkOrderDto); log.info("WorkTimeOderServiceImpl[]addTest[]input.param.creatWorkOrderDto" + createWorkOrderDto);
if (null == createWorkOrderDto || CollectionUtils.isEmpty(createWorkOrderDto.getWorkTimeOrders())) { if (null == createWorkOrderDto || CollectionUtils.isEmpty(createWorkOrderDto.getWorkTimeOrders())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_INFO_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_INFO_IS_NULL);
...@@ -325,74 +302,6 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -325,74 +302,6 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
} }
/**
* 功能: 驳回重新填报
*
* @param dto 自定义DTO
* @return 填报信息
*/
@Transactional
@Override
public List<WorkTimeOrderDto> update(CreateWorkOrderDto dto) {
log.info("WorkTimeOrderServiceImpl[]update[]input.param.CreateWorkOrderDto:{}" + dto);
if (null == dto || CollectionUtils.isEmpty(dto.getWorkTimeOrders())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_INFO_IS_NULL);
}
List<WorkTimeOrderDto> workTimeOrders = dto.getWorkTimeOrders();
// 1.判断是否超过8小时
int count = 0;
List<WorkTimeOrder> byDayToDto = getByDayToDto(workTimeOrders.get(0).getUserId(), workTimeOrders.get(0).getWorkDay());
int i;
for (WorkTimeOrder timeOrder : byDayToDto) {
i = 0;
for (WorkTimeOrderDto workTimeOrder : workTimeOrders) {
if (!workTimeOrder.getWorkId().equals(timeOrder.getWorkId())) {
i++;
}
}
if (i == workTimeOrders.size())
count += timeOrder.getWorkTime();
}
System.out.println(count);
timeNotEight(count, workTimeOrders);
// 2.判断是否重复填报
isRepeat(workTimeOrders);
for (WorkTimeOrderDto workTimeOrder : workTimeOrders) {
for (WorkTimeOrder orderDto : byDayToDto) {
// workId如果相同就不管
if (workTimeOrder.getWorkId().equals(orderDto.getWorkId())) {
break;
}
// 填报和数据库的类型相同
if (workTimeOrder.getType().equals(orderDto.getType())) {
if (PROJECT.equals(workTimeOrder.getType()) || BUSINESS_OPPORTUNITY.equals(workTimeOrder.getType()))
if (workTimeOrder.getProjectId().equals(orderDto.getProjectId())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_ALREADY_COMMIT);
}
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_ALREADY_COMMIT);
}
}
}
List<WorkTimeOrderDto> workTimeOrderDtos = reSubmit(workTimeOrders);
// 更新collect表
int status = statusYes(workTimeOrders.get(0).getUserId(), workTimeOrderDtos.get(0).getWorkDay());
int totalTime = 0;
List<WorkTimeOrder> byDay = workTimeOrderMapper.getByDay(workTimeOrders.get(0).getUserId(), workTimeOrderDtos.get(0).getWorkDay());
for (WorkTimeOrder workTimeOrder : byDay) {
totalTime += workTimeOrder.getWorkTime();
}
WorkCollect workCollect = new WorkCollect();
BeanUtils.copyProperties(workTimeOrders.get(0), workCollect);
workCollect.setTotalTime(totalTime);
workCollect.setStatus(status);
workCollectService.update(workCollect);
// 更新数据
return workTimeOrderDtos;
}
// 判断填写工时单是否重复 // 判断填写工时单是否重复
...@@ -719,32 +628,6 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -719,32 +628,6 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
} }
private void checkWorkOrderInfo(List<WorkTimeOrderDto> list) {
log.info("WorkOrderServiceImpl[]checkWorkOrderInfo[]input.method");
// 1、工单时间不能大于当前天
Date date = new Date();
WorkSubmitAdopt workSubmitAdopt = workSubmitAdoptService.getById(1);
Integer submitTime = workSubmitAdopt.getSubmitTime();
for (WorkTimeOrderDto dto : list) {
isEmpty(dto);
// 2、默认设置超过系统默认3天(包括驳回3天)未填报的工时将不能填报
if (date.getTime() - dto.getWorkDay().getTime() > submitTime * 24 * 60 * 60 * 1000) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_DAY_THAN_DATE);
}
// 3.判断当日是否已经填报
WorkCollect byUserIdAndWorkDay = workCollectService.getByUserIdAndWorkDay(dto.getUserId(), dto.getWorkDay());
if (null != byUserIdAndWorkDay) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_ALREADY_COMMIT);
}
}
// 判断是否重复填报
isRepeat(list);
// 4.每天工时累加不得超过八小时
timeNotEight(0, list);
}
// 判断工单是否合法 // 判断工单是否合法
private void isEmpty(WorkTimeOrderDto dto) { private void isEmpty(WorkTimeOrderDto dto) {
...@@ -816,106 +699,6 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -816,106 +699,6 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
return -1 == i; return -1 == i;
} }
// 驳回重新填报
private List<WorkTimeOrderDto> reSubmit(List<WorkTimeOrderDto> workTimeOrders) {
WorkSubmitAdopt workSubmitAdopt = workSubmitAdoptService.getById(1);
Integer submitTime = workSubmitAdopt.getSubmitTime();
for (WorkTimeOrderDto workTimeOrderDto : workTimeOrders) {
if (null == workTimeOrderDto.getDes()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.DES_NOT_NULL);
}
WorkTimeOrder order = workTimeOrderMapper.selectById(workTimeOrderDto.getWorkId());
if (order.getWorkDay().compareTo(workTimeOrderDto.getWorkDay()) != 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.DATE_IS_ERROR);
}
Date modifyTime = order.getModifyTime();
// 判断是否已经驳回三天
if (new Date().getTime() - DateUtil.getStartOfDay(modifyTime).getTime() > submitTime * 24 * 60 * 60 * 1000) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_DAY_THAN_DATE);
}
workTimeOrderDto.setStatus(RE_SUBMIT);
WorkTimeOrder workTimeOrder = new WorkTimeOrder();
BeanUtils.copyProperties(workTimeOrderDto, workTimeOrder);
// 获取用户名
workTimeOrderDto.setUserName(workUserService.getById(workTimeOrder.getUserId()).getName());
// 获取项目名
if (PROJECT.equals(workTimeOrder.getType()) || BUSINESS_OPPORTUNITY.equals(workTimeOrder.getType())) {
workTimeOrderDto.setProjectName(workProjectService.getById(workTimeOrder.getProjectId()).getProjectName());
}
// 获取类型名
workTimeOrderDto.setTypeName(getTypeName(workTimeOrderDto.getType()));
// 获取部门id
Integer deptIdByUserId = workUserDeptService.getDeptIdByUserId(workTimeOrder.getUserId());
workTimeOrder.setDeptId(deptIdByUserId);
Date workDay = workTimeOrder.getWorkDay();
// 默认正常工时
workTimeOrder.setIsOvertime(0);
if (workHolidayService.isHoliday(workDay)) {
workTimeOrder.setIsOvertime(1);
}
int iRow = workTimeOrderMapper.updateById(workTimeOrder);
if (0 == iRow) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.UPDATE_DATA_FAIL);
}
}
return workTimeOrders;
}
private List<WorkTimeOrderDto> saveWorkOrderInfo(List<WorkTimeOrderDto> list) {
log.info("WorkOrderServiceImpl[]saveWorkOrderInfo[]input.method");
int totalTime = 0;
int status = PROJECT;
//根据用户id,获取用户信息
for (WorkTimeOrderDto dto : list) {
WorkTimeOrder workTimeOrder = new WorkTimeOrder();
// 获取用户名
dto.setUserName(workUserService.getById(dto.getUserId()).getName());
// 获取项目名
if ((PROJECT.equals(dto.getType()) || BUSINESS_OPPORTUNITY.equals(dto.getType()))) {
if (null == dto.getProjectId())
throw new BaseCustomException(BASE_RESP_CODE_ENUM.NO_JOIN_EVERY_PROJECT_PLASE_JION);
}
dto.setProjectName(null != dto.getProjectId() ? workProjectService.getById(dto.getProjectId()).getProjectName() : getTypeName(dto.getType()));
// 获取项目经理
if (null != dto.getProjectId())
dto.setManagerName(workUserService.getById(workProjectService.getById(dto.getProjectId()).getManagerId()).getName());
// 获取类型名
dto.setTypeName(getTypeName(dto.getType()));
// 获取部门id
workTimeOrder.setDeptId(workUserDeptService.getDeptIdByUserId(dto.getUserId()));
Date workDay = dto.getWorkDay();
// 默认正常工时
workTimeOrder.setIsOvertime(0);
if (workHolidayService.isHoliday(workDay)) {
workTimeOrder.setIsOvertime(1);
}
dto.setStatus(status);
// 如果是请假或者调休直接通过
if (LEAVE.equals(dto.getType()) || COMPENSATORY_LEAVE.equals(dto.getType())) {
dto.setProjectName(null);
dto.setProjectId(null);
}
BeanUtils.copyProperties(dto, workTimeOrder);
int saveRow = workTimeOrderMapper.save(workTimeOrder);
if (0 == saveRow) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INSERT_DATA_IS_FAIL);
}
totalTime += workTimeOrder.getWorkTime();
}
WorkCollect workCollect = new WorkCollect();
BeanUtils.copyProperties(list.get(0), workCollect);
workCollect.setTotalTime(totalTime);
workCollect.setStatus(status);
if (!workCollectService.insertCollect(workCollect)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INSERT_DATA_IS_FAIL);
}
return list;
}
// 审批分页 // 审批分页
private PageInfo<WorkTimeOrderDto> pageExamine(WorkUser user, Integer projectId, Integer type, Integer page, Integer size, Integer status) { private PageInfo<WorkTimeOrderDto> pageExamine(WorkUser user, Integer projectId, Integer type, Integer page, Integer size, Integer status) {
......
...@@ -51,24 +51,7 @@ public class WorkTimeOrderController extends BaseController { ...@@ -51,24 +51,7 @@ public class WorkTimeOrderController extends BaseController {
return getResult(workTimeOrderService.wtoToWtod(dtos)); return getResult(workTimeOrderService.wtoToWtod(dtos));
} }
@ApiOperation(value = "工时填报", notes = "工时填报", httpMethod = "POST")
@ApiImplicitParam(name = "dto", value = "创建工单dto", dataType = "CreateWorkOrderDto")
@PostMapping(value = "/add")
public Result<List<WorkTimeOrderDto>> add(@RequestBody CreateWorkOrderDto dto) {
log.info("WorkTimeOrderController[]add[]input.param" + dto);
List<WorkTimeOrderDto> workOrderList = workTimeOrderService.add(dto);
return getResult(workOrderList);
}
@ApiOperation(value = "工时驳回重新填报", notes = "工时驳回重新填报", httpMethod = "PUT")
@ApiImplicitParam(name = "dto", value = "创建工单dto", dataType = "CreateWorkOrderDto")
@PutMapping(value = "/update")
public Result<List<WorkTimeOrderDto>> update(@RequestBody CreateWorkOrderDto dto) {
log.info("WorkTimeOrderController[]update[]input.param" + dto);
List<WorkTimeOrderDto> updateData = workTimeOrderService.update(dto);
return getResult(updateData);
}
@ApiOperation(value = "查询待审批(小程序)", notes = "查询待审批(小程序)", httpMethod = "GET") @ApiOperation(value = "查询待审批(小程序)", notes = "查询待审批(小程序)", httpMethod = "GET")
@ApiImplicitParams({ @ApiImplicitParams({
...@@ -166,12 +149,12 @@ public class WorkTimeOrderController extends BaseController { ...@@ -166,12 +149,12 @@ public class WorkTimeOrderController extends BaseController {
return getResult(workTimeOrderDtos); return getResult(workTimeOrderDtos);
} }
@ApiOperation(value = "工时填报(测试)", notes = "工时填报(测试)", httpMethod = "POST") @ApiOperation(value = "工时填报", notes = "工时填报", httpMethod = "POST")
@ApiImplicitParam(name = "dto", value = "创建工单dto", dataType = "CreateWorkOrderDto") @ApiImplicitParam(name = "dto", value = "创建工单dto", dataType = "CreateWorkOrderDto")
@PostMapping(value = "/addOrder") @PostMapping(value = "/addOrder")
public Result<List<WorkTimeOrderDto>> addOrder(@RequestBody CreateWorkOrderDto dto) { public Result<List<WorkTimeOrderDto>> addOrder(@RequestBody CreateWorkOrderDto dto) {
log.info("WorkTimeOrderController[]addTest[]input.param" + dto); log.info("WorkTimeOrderController[]addTest[]input.param" + dto);
List<WorkTimeOrderDto> workTimeOrderDtos = workTimeOrderService.addTest(dto); List<WorkTimeOrderDto> workTimeOrderDtos = workTimeOrderService.addOrder(dto);
return getResult(workTimeOrderDtos); return getResult(workTimeOrderDtos);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment