|
@@ -7,17 +7,16 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.dayou.common.BaseEntity;
|
|
|
import com.dayou.dto.TaskRecordDTO;
|
|
|
import com.dayou.dto.WorkNodeCommit;
|
|
|
-import com.dayou.entity.GlobalConfig;
|
|
|
-import com.dayou.entity.Personal;
|
|
|
-import com.dayou.entity.PersonalTarget;
|
|
|
-import com.dayou.entity.User;
|
|
|
+import com.dayou.entity.*;
|
|
|
import com.dayou.enums.CertificateEnum;
|
|
|
import com.dayou.enums.GlobalConfigEnum;
|
|
|
import com.dayou.enums.MainBusinessEnum;
|
|
|
+import com.dayou.enums.workflow.NodeStateEnum;
|
|
|
import com.dayou.exception.ErrorCode;
|
|
|
import com.dayou.mapper.PersonalMapper;
|
|
|
import com.dayou.service.*;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.dayou.service.workflow.IWorkFlowNodeInstanceService;
|
|
|
import com.dayou.service.workflow.IWorkFlowService;
|
|
|
import com.dayou.vo.PersonalVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -58,6 +57,9 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
|
|
|
@Autowired
|
|
|
private IPersonalTargetService personalTargetService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IWorkFlowNodeInstanceService workFlowNodeInstanceService;
|
|
|
+
|
|
|
@Override
|
|
|
@SuppressWarnings("unchecked")
|
|
|
public Page<PersonalVO> selectPage(Page page, PersonalVO personal){
|
|
@@ -116,6 +118,32 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Boolean doRecall(Long id) {
|
|
|
+ List<WorkFlowNodeInstance> exists = workFlowNodeInstanceService.list(new LambdaQueryWrapper<WorkFlowNodeInstance>()
|
|
|
+ .eq(WorkFlowNodeInstance::getBusinessType, MainBusinessEnum.PERSONAL_BUSINESS.name())
|
|
|
+ .eq(WorkFlowNodeInstance::getBusinessId, id)
|
|
|
+ .eq(BaseEntity::getDeleted, Boolean.FALSE));
|
|
|
+ if (exists.size()>2){
|
|
|
+ ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR,"业务部已分单,无法撤回。若需撤回请联系当前节点待办人退回流程。");
|
|
|
+ return Boolean.FALSE;
|
|
|
+ }else{
|
|
|
+ try {
|
|
|
+ for (WorkFlowNodeInstance workFlowNodeInstance: exists){
|
|
|
+ if (workFlowNodeInstance.getSequence().equals(0)){
|
|
|
+ workFlowNodeInstance.setState(NodeStateEnum.PENDING.name());
|
|
|
+ workFlowNodeInstanceService.updateById(workFlowNodeInstance);
|
|
|
+ }else {
|
|
|
+ workFlowNodeInstanceService.removeById(workFlowNodeInstance.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ ErrorCode.throwBusinessException(ErrorCode.DATA_NOT_EXISTS);
|
|
|
+ }
|
|
|
+ return Boolean.TRUE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private synchronized Long nextInwardStaff(){
|
|
|
GlobalConfig inwardStaffRoll = globalConfigService.getGlobalConfig(GlobalConfigEnum.DEPARTMENT_TURNS.getCode(), GlobalConfigEnum.DepartmentTurns.INWARD_STAFF_ROLL.getCode());
|
|
|
List<User> users = userService.simplePostName(PERSONAL_INWARD);
|