1.0.26 提交项目信息并提交流程

dev
yinq 2 months ago
parent 2a989b7355
commit 49641fc571

@ -75,7 +75,7 @@ public class CrmCustomerContactServiceImpl implements ICrmCustomerContactService
MPJLambdaWrapper<CrmCustomerContact> lqw = JoinWrappers.lambda(CrmCustomerContact.class)
.selectAll(CrmCustomerContact.class)
.select(CrmCustomerInfo::getCustomerName)
.leftJoin(CrmCustomerInfo.class, CrmCustomerInfo::getCustomerId, CrmCustomerContact::getContactId)
.leftJoin(CrmCustomerInfo.class, CrmCustomerInfo::getCustomerId, CrmCustomerContact::getCustomerId)
.eq(bo.getCustomerId() != null, CrmCustomerContact::getCustomerId, bo.getCustomerId())
.like(StringUtils.isNotBlank(bo.getContactName()), CrmCustomerContact::getContactName, bo.getContactName())
.eq(StringUtils.isNotBlank(bo.getSexType()), CrmCustomerContact::getSexType, bo.getSexType())

@ -80,6 +80,19 @@ public class ErpProjectInfoController extends BaseController {
return toAjax(erpProjectInfoService.insertByBo(bo));
}
/**
*
* @param bo
* @return
*/
@SaCheckPermission("oa/erp:projectInfo:add")
@Log(title = "项目信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/submitAndFlowStart")
public R<ErpProjectInfoVo> submitAndFlowStart(@Validated(AddGroup.class) @RequestBody ErpProjectInfoBo bo) {
return R.ok(erpProjectInfoService.projectSubmitAndFlowStart(bo));
}
/**
*
*/

@ -9,6 +9,9 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.*;
import cn.hutool.core.util.ObjectUtil;
import org.dromara.workflow.api.domain.RemoteFlowInstanceBizExt;
/**
* erp_project_info
@ -131,5 +134,39 @@ public class ErpProjectInfoBo extends BaseEntity {
*/
private String activeFlag;
/**
*
*/
private String flowCode;
/**
* ( )
*/
private String handler;
/**
* {'entity': {}}
*/
private Map<String, Object> variables;
/**
*
*/
private RemoteFlowInstanceBizExt bizExt;
public Map<String, Object> getVariables() {
if (variables == null) {
return new HashMap<>(16);
}
variables.entrySet().removeIf(entry -> Objects.isNull(entry.getValue()));
return variables;
}
public RemoteFlowInstanceBizExt getBizExt() {
if (ObjectUtil.isNull(bizExt)) {
bizExt = new RemoteFlowInstanceBizExt();
}
return bizExt;
}
}

@ -66,4 +66,11 @@ public interface IErpProjectInfoService {
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
*
* @param bo
* @return
*/
ErpProjectInfoVo projectSubmitAndFlowStart(ErpProjectInfoBo bo);
}

@ -64,7 +64,8 @@ public class ErpContractInfoServiceImpl implements IErpContractInfoService {
ErpContractInfoVo contractInfoVo = baseMapper.selectVoById(contractId);
MPJLambdaWrapper<ErpContractMaterial> lqw = JoinWrappers.lambda(ErpContractMaterial.class)
.selectAll(ErpContractMaterial.class)
.eq(contractId != null, ErpContractMaterial::getContractId, contractId);
.eq(contractId != null, ErpContractMaterial::getContractId, contractId)
.eq("t.del_flag", "0");;
List<ErpContractMaterialVo> contractMaterialList = contractMaterialMapper.selectCustomErpContractMaterialVoList(lqw);
contractInfoVo.setContractMaterialList(contractMaterialList);
return contractInfoVo;

@ -76,7 +76,8 @@ public class ErpProjectContractsServiceImpl implements IErpProjectContractsServi
.eq(bo.getProjectId() != null, ErpProjectContracts::getProjectId, bo.getProjectId())
.eq(bo.getContractId() != null, ErpProjectContracts::getContractId, bo.getContractId())
.eq(bo.getSortOrder() != null, ErpProjectContracts::getSortOrder, bo.getSortOrder())
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), ErpProjectContracts::getActiveFlag, bo.getActiveFlag());
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), ErpProjectContracts::getActiveFlag, bo.getActiveFlag())
.eq("t.del_flag", "0");
return lqw;
}

@ -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);
}
}

Loading…
Cancel
Save