|
|
|
|
@ -10,9 +10,9 @@ import org.dromara.common.core.enums.OAStatusEnum;
|
|
|
|
|
import org.dromara.common.core.exception.ServiceException;
|
|
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
|
|
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;
|
|
|
|
|
@ -21,6 +21,7 @@ import org.dromara.common.tenant.helper.TenantHelper;
|
|
|
|
|
import org.dromara.oa.erp.domain.ErpProjectPlan;
|
|
|
|
|
import org.dromara.oa.erp.domain.ErpProjectReportDetail;
|
|
|
|
|
import org.dromara.oa.erp.domain.vo.ErpProjectPlanVo;
|
|
|
|
|
import org.dromara.system.api.RemoteCodeRuleService;
|
|
|
|
|
import org.dromara.workflow.api.RemoteWorkflowService;
|
|
|
|
|
import org.dromara.workflow.api.domain.RemoteStartProcess;
|
|
|
|
|
import org.dromara.workflow.api.event.ProcessEvent;
|
|
|
|
|
@ -50,6 +51,9 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
|
|
|
|
|
@DubboReference(timeout = 30000)
|
|
|
|
|
private RemoteWorkflowService remoteWorkflowService;
|
|
|
|
|
|
|
|
|
|
@DubboReference()
|
|
|
|
|
private RemoteCodeRuleService remoteCodeRuleService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询机票预订
|
|
|
|
|
*
|
|
|
|
|
@ -57,24 +61,24 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
|
|
|
|
|
* @return 机票预订
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public CrmFlightBookingVo queryById(Long bookingId){
|
|
|
|
|
public CrmFlightBookingVo queryById(Long bookingId) {
|
|
|
|
|
return baseMapper.selectVoById(bookingId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 分页查询机票预订列表
|
|
|
|
|
*
|
|
|
|
|
* @param bo 查询条件
|
|
|
|
|
* @param pageQuery 分页参数
|
|
|
|
|
* @return 机票预订分页列表
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public TableDataInfo<CrmFlightBookingVo> queryPageList(CrmFlightBookingBo bo, PageQuery pageQuery) {
|
|
|
|
|
MPJLambdaWrapper<CrmFlightBooking> lqw = buildQueryWrapper(bo);
|
|
|
|
|
lqw.orderByDesc(CrmFlightBooking::getUpdateTime);
|
|
|
|
|
Page<CrmFlightBookingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
|
|
return TableDataInfo.build(result);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 分页查询机票预订列表
|
|
|
|
|
*
|
|
|
|
|
* @param bo 查询条件
|
|
|
|
|
* @param pageQuery 分页参数
|
|
|
|
|
* @return 机票预订分页列表
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public TableDataInfo<CrmFlightBookingVo> queryPageList(CrmFlightBookingBo bo, PageQuery pageQuery) {
|
|
|
|
|
MPJLambdaWrapper<CrmFlightBooking> lqw = buildQueryWrapper(bo);
|
|
|
|
|
lqw.orderByDesc(CrmFlightBooking::getUpdateTime);
|
|
|
|
|
Page<CrmFlightBookingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
|
|
return TableDataInfo.build(result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询符合条件的机票预订列表
|
|
|
|
|
@ -91,20 +95,24 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
|
|
|
|
|
private MPJLambdaWrapper<CrmFlightBooking> buildQueryWrapper(CrmFlightBookingBo bo) {
|
|
|
|
|
Map<String, Object> params = bo.getParams();
|
|
|
|
|
MPJLambdaWrapper<CrmFlightBooking> lqw = JoinWrappers.lambda(CrmFlightBooking.class)
|
|
|
|
|
.selectAll(CrmFlightBooking.class)
|
|
|
|
|
.eq(CrmFlightBooking::getDelFlag, "0")
|
|
|
|
|
.like(StringUtils.isNotBlank(bo.getApplyCode()), CrmFlightBooking::getApplyCode, bo.getApplyCode())
|
|
|
|
|
.eq(bo.getPassengerId() != null, CrmFlightBooking::getPassengerId, bo.getPassengerId())
|
|
|
|
|
.like(StringUtils.isNotBlank(bo.getPassengerName()), CrmFlightBooking::getPassengerName, bo.getPassengerName())
|
|
|
|
|
.eq(bo.getTravelDate() != null, CrmFlightBooking::getTravelDate, bo.getTravelDate())
|
|
|
|
|
.like(StringUtils.isNotBlank(bo.getDepartureLocation()), CrmFlightBooking::getDepartureLocation, bo.getDepartureLocation())
|
|
|
|
|
.like(StringUtils.isNotBlank(bo.getArrivalLocation()), CrmFlightBooking::getArrivalLocation, bo.getArrivalLocation())
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getFlightDiscount()), CrmFlightBooking::getFlightDiscount, bo.getFlightDiscount())
|
|
|
|
|
.eq(bo.getFlightAmount() != null, CrmFlightBooking::getFlightAmount, bo.getFlightAmount())
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getOssId()), CrmFlightBooking::getOssId, bo.getOssId())
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getBookingStatus()), CrmFlightBooking::getBookingStatus, bo.getBookingStatus())
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getFlowStatus()), CrmFlightBooking::getFlowStatus, bo.getFlowStatus())
|
|
|
|
|
;
|
|
|
|
|
.selectAll(CrmFlightBooking.class)
|
|
|
|
|
.eq(CrmFlightBooking::getDelFlag, "0")
|
|
|
|
|
.like(StringUtils.isNotBlank(bo.getApplyCode()), CrmFlightBooking::getApplyCode, bo.getApplyCode())
|
|
|
|
|
.eq(bo.getPassengerId() != null, CrmFlightBooking::getPassengerId, bo.getPassengerId())
|
|
|
|
|
.like(StringUtils.isNotBlank(bo.getPassengerName()), CrmFlightBooking::getPassengerName,
|
|
|
|
|
bo.getPassengerName())
|
|
|
|
|
.eq(bo.getTravelDate() != null, CrmFlightBooking::getTravelDate, bo.getTravelDate())
|
|
|
|
|
.like(StringUtils.isNotBlank(bo.getDepartureLocation()), CrmFlightBooking::getDepartureLocation,
|
|
|
|
|
bo.getDepartureLocation())
|
|
|
|
|
.like(StringUtils.isNotBlank(bo.getArrivalLocation()), CrmFlightBooking::getArrivalLocation,
|
|
|
|
|
bo.getArrivalLocation())
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getFlightDiscount()), CrmFlightBooking::getFlightDiscount,
|
|
|
|
|
bo.getFlightDiscount())
|
|
|
|
|
.eq(bo.getFlightAmount() != null, CrmFlightBooking::getFlightAmount, bo.getFlightAmount())
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getOssId()), CrmFlightBooking::getOssId, bo.getOssId())
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getBookingStatus()), CrmFlightBooking::getBookingStatus,
|
|
|
|
|
bo.getBookingStatus())
|
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getFlowStatus()), CrmFlightBooking::getFlowStatus, bo.getFlowStatus());
|
|
|
|
|
return lqw;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -118,6 +126,12 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
|
|
|
|
|
public Boolean insertByBo(CrmFlightBookingBo bo) {
|
|
|
|
|
CrmFlightBooking add = MapstructUtils.convert(bo, CrmFlightBooking.class);
|
|
|
|
|
validEntityBeforeSave(add);
|
|
|
|
|
// 自动生成申请单号
|
|
|
|
|
if(StringUtils.isBlank(add.getApplyCode())){
|
|
|
|
|
String applyCode = remoteCodeRuleService.selectCodeRuleCode("1019");
|
|
|
|
|
add.setApplyCode(applyCode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
|
|
|
if (flag) {
|
|
|
|
|
bo.setBookingId(add.getBookingId());
|
|
|
|
|
@ -141,8 +155,8 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
|
|
|
|
|
/**
|
|
|
|
|
* 保存前的数据校验
|
|
|
|
|
*/
|
|
|
|
|
private void validEntityBeforeSave(CrmFlightBooking entity){
|
|
|
|
|
//TODO 做一些数据校验,如唯一约束
|
|
|
|
|
private void validEntityBeforeSave(CrmFlightBooking entity) {
|
|
|
|
|
// TODO 做一些数据校验,如唯一约束
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -154,11 +168,12 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
|
|
|
|
if(isValid){
|
|
|
|
|
//TODO 做一些业务上的校验,判断是否需要校验
|
|
|
|
|
if (isValid) {
|
|
|
|
|
// TODO 做一些业务上的校验,判断是否需要校验
|
|
|
|
|
}
|
|
|
|
|
return baseMapper.deleteByIds(ids) > 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 机票预订并提交
|
|
|
|
|
*
|
|
|
|
|
@ -190,6 +205,7 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
|
|
|
|
|
}
|
|
|
|
|
return MapstructUtils.convert(add, CrmFlightBookingVo.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成等)
|
|
|
|
|
*
|
|
|
|
|
@ -211,10 +227,10 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
|
|
|
|
|
} else if (Objects.equals(processEvent.getStatus(), BusinessStatusEnum.FINISH.getStatus())) {
|
|
|
|
|
crmFlightBooking.setBookingStatus(OAStatusEnum.COMPLETED.getStatus());
|
|
|
|
|
} else if (Objects.equals(processEvent.getStatus(), BusinessStatusEnum.INVALID.getStatus())
|
|
|
|
|
|| Objects.equals(processEvent.getStatus(), BusinessStatusEnum.TERMINATION.getStatus())) {
|
|
|
|
|
|| Objects.equals(processEvent.getStatus(), BusinessStatusEnum.TERMINATION.getStatus())) {
|
|
|
|
|
crmFlightBooking.setBookingStatus(OAStatusEnum.INVALID.getStatus());
|
|
|
|
|
} else if (Objects.equals(processEvent.getStatus(), BusinessStatusEnum.BACK.getStatus())
|
|
|
|
|
|| Objects.equals(processEvent.getStatus(), BusinessStatusEnum.CANCEL.getStatus())) {
|
|
|
|
|
|| Objects.equals(processEvent.getStatus(), BusinessStatusEnum.CANCEL.getStatus())) {
|
|
|
|
|
// 流程驳回:业务状态还原为草稿,允许重新编辑和提交
|
|
|
|
|
crmFlightBooking.setBookingStatus(OAStatusEnum.DRAFT.getStatus());
|
|
|
|
|
}
|
|
|
|
|
|