feat(oa): 添加机票预订申请单号自动生成功能

dev
Yangk 4 days ago
parent 1c8428f0e1
commit ac7b43806e

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

Loading…
Cancel
Save