|
|
|
|
@ -7,7 +7,6 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.github.yulichang.toolkit.JoinWrappers;
|
|
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.dromara.oa.erp.domain.bo.ErpProjectInfoBo;
|
|
|
|
|
@ -15,6 +14,11 @@ import org.dromara.oa.erp.domain.vo.ErpProjectInfoVo;
|
|
|
|
|
import org.dromara.oa.erp.domain.ErpProjectInfo;
|
|
|
|
|
import org.dromara.oa.erp.mapper.ErpProjectInfoMapper;
|
|
|
|
|
import org.dromara.oa.erp.service.IErpProjectInfoService;
|
|
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
|
|
import org.apache.seata.spring.annotation.GlobalTransactional;
|
|
|
|
|
import org.dromara.common.core.exception.ServiceException;
|
|
|
|
|
import org.dromara.workflow.api.RemoteWorkflowService;
|
|
|
|
|
import org.dromara.workflow.api.domain.RemoteStartProcess;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
@ -32,6 +36,9 @@ public class ErpProjectInfoServiceImpl implements IErpProjectInfoService {
|
|
|
|
|
|
|
|
|
|
private final ErpProjectInfoMapper baseMapper;
|
|
|
|
|
|
|
|
|
|
@DubboReference(timeout = 30000)
|
|
|
|
|
private RemoteWorkflowService remoteWorkflowService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询项目信息
|
|
|
|
|
*
|
|
|
|
|
@ -70,7 +77,6 @@ public class ErpProjectInfoServiceImpl implements IErpProjectInfoService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MPJLambdaWrapper<ErpProjectInfo> buildQueryWrapper(ErpProjectInfoBo bo) {
|
|
|
|
|
Map<String, Object> params = bo.getParams();
|
|
|
|
|
MPJLambdaWrapper<ErpProjectInfo> lqw = JoinWrappers.lambda(ErpProjectInfo.class)
|
|
|
|
|
.selectAll(ErpProjectInfo.class)
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getContractFlag()), ErpProjectInfo::getContractFlag, bo.getContractFlag())
|
|
|
|
|
@ -146,4 +152,35 @@ public class ErpProjectInfoServiceImpl implements IErpProjectInfoService {
|
|
|
|
|
}
|
|
|
|
|
return baseMapper.deleteByIds(ids) > 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 提交项目信息并提交流程
|
|
|
|
|
*
|
|
|
|
|
* @param bo
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@GlobalTransactional(rollbackFor = Exception.class)
|
|
|
|
|
public ErpProjectInfoVo projectSubmitAndFlowStart(ErpProjectInfoBo bo) {
|
|
|
|
|
ErpProjectInfo add = MapstructUtils.convert(bo, ErpProjectInfo.class);
|
|
|
|
|
validEntityBeforeSave(add);
|
|
|
|
|
if (StringUtils.isNull(bo.getProjectId())) {
|
|
|
|
|
this.insertByBo(bo);
|
|
|
|
|
} else {
|
|
|
|
|
this.updateByBo(bo);
|
|
|
|
|
}
|
|
|
|
|
// 后端发起需要忽略权限
|
|
|
|
|
bo.getVariables().put("ignore", true);
|
|
|
|
|
RemoteStartProcess startProcess = new RemoteStartProcess();
|
|
|
|
|
startProcess.setBusinessId(bo.getProjectId().toString());
|
|
|
|
|
startProcess.setFlowCode(bo.getFlowCode());
|
|
|
|
|
startProcess.setVariables(bo.getVariables());
|
|
|
|
|
startProcess.setBizExt(bo.getBizExt());
|
|
|
|
|
bo.getBizExt().setBusinessId(startProcess.getBusinessId());
|
|
|
|
|
boolean flagOne = remoteWorkflowService.startCompleteTask(startProcess);
|
|
|
|
|
if (!flagOne) {
|
|
|
|
|
throw new ServiceException("流程发起异常");
|
|
|
|
|
}
|
|
|
|
|
return MapstructUtils.convert(add, ErpProjectInfoVo.class);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|