package org.springblade.mdm.flow.service; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.commons.service.ParamService; import org.springblade.mdm.flow.entity.TaskDispatch; import org.springblade.mdm.flow.mapper.TaskDispatchMapper; import org.springblade.mdm.flow.vo.TaskAssignVO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; /** * 任务派工数据 处理服务 * * @author yangys */ @Slf4j @Service @AllArgsConstructor public class TaskDispatchService extends BizServiceImpl { @Autowired private ParamService paramService; @Transactional(rollbackFor = Exception.class) public TaskDispatch saveTask(TaskAssignVO startVO) { TaskDispatch taskDispatch = new TaskDispatch(); BeanUtils.copyProperties(startVO, taskDispatch); this.save(taskDispatch); return taskDispatch; } /* public void updateSuccess(long id, String instId) { TaskDispatch taskDispatch = getById(id); taskDispatch.setProcessInstanceId(instId); taskDispatch.setStatus(TaskDispatch.STATUS_STARTED); this.updateById(taskDispatch); } */ /** * 检查是否重复派工 * @param startVO * @return */ public boolean checkIsDuplicate(TaskAssignVO startVO) { if(startVO.isTemporaryFlow()){ //试切补充,不验证重复 return false; } int taskDupDays = Func.toInt(paramService.taskDuplateCheckDays()); LocalDateTime checkStartDate = LocalDateTime.now().minusDays(taskDupDays); long cnt = lambdaQuery().eq(TaskDispatch::getDrawingNo,startVO.getDrawingNo()) .eq(TaskDispatch::getProcessNo,startVO.getProcessNo()) .eq(TaskDispatch::getProcessEdition,startVO.getProcessEdition()) .eq(TaskDispatch::getMachineCode,startVO.getMachineCode()) .gt(TaskDispatch::getCreateTime,checkStartDate) .count(); return cnt > 0; } }