|
package org.springblade.mdm.thirdpart.service;
|
|
import lombok.extern.slf4j.Slf4j;
|
import org.flowable.engine.RuntimeService;
|
import org.flowable.engine.runtime.ProcessInstance;
|
import org.springblade.mdm.flow.constants.FlowVariableConstant;
|
import org.springblade.mdm.flow.entity.TaskDispatch;
|
import org.springblade.mdm.flow.service.TaskDispatchService;
|
import org.springblade.mdm.flow.vo.TaskAssignVO;
|
import org.springblade.mdm.thirdpart.vo.MesTaskFinishVO;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
/**
|
* 任务派工数据 处理服务
|
*
|
* @author yangys
|
*/
|
@Slf4j
|
@Service
|
public class MesTaskService {
|
@Autowired
|
private TaskDispatchService taskDispatchService;
|
@Autowired
|
private RuntimeService runtimeService;
|
/**
|
* 保存mes任务
|
* @param startVO
|
* @return
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public TaskDispatch saveTask(TaskAssignVO startVO) {
|
TaskDispatch taskDispatch = new TaskDispatch();
|
BeanUtils.copyProperties(startVO, taskDispatch);
|
|
boolean isDuplicate = taskDispatchService.checkIsDuplicate(startVO);
|
if(isDuplicate){
|
taskDispatch.setStatus(TaskDispatch.STATUS_DUP);
|
}
|
taskDispatch.setTenantId("000000");
|
taskDispatchService.save(taskDispatch);
|
|
taskDispatchService.addDrawingNos(taskDispatch.getDrawingNo());
|
return taskDispatch;
|
}
|
|
/**
|
* mes 完成推送
|
* @param finishTaskVO mes完工数据
|
*/
|
public void finishTask(MesTaskFinishVO finishTaskVO) {
|
TaskDispatch taskDispatch = taskDispatchService.getByOperationId(finishTaskVO.getOperationId());
|
if(taskDispatch != null && taskDispatch.getProcessInstanceId() != null){
|
taskDispatch.setProcessCard(finishTaskVO.getProcessCard());
|
if(finishTaskVO.getInspector() != null) {
|
taskDispatch.setInspector(finishTaskVO.getInspector());
|
}
|
if(finishTaskVO.getOperationFeedbackTime() != null){
|
taskDispatch.setOperateTime(finishTaskVO.getOperationFeedbackTime());
|
}
|
|
if(finishTaskVO.getAcruslEndTime() !=null ) {
|
taskDispatch.setCheckTime(finishTaskVO.getAcruslEndTime());
|
}
|
taskDispatchService.updateById(taskDispatch);
|
|
ProcessInstance inst = runtimeService.createProcessInstanceQuery()
|
.processInstanceId(taskDispatch.getProcessInstanceId()).active().singleResult();
|
if(inst != null){
|
runtimeService.setVariable(taskDispatch.getProcessInstanceId(), FlowVariableConstant.PROCESS_CARD,finishTaskVO.getProcessCard());
|
}
|
|
}
|
}
|
}
|