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

dev
Yangk 1 week 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.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.ErpProjectPlan;
import org.dromara.oa.erp.domain.ErpProjectReportDetail; import org.dromara.oa.erp.domain.ErpProjectReportDetail;
import org.dromara.oa.erp.domain.vo.ErpProjectPlanVo; 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.RemoteWorkflowService;
import org.dromara.workflow.api.domain.RemoteStartProcess; import org.dromara.workflow.api.domain.RemoteStartProcess;
import org.dromara.workflow.api.event.ProcessEvent; import org.dromara.workflow.api.event.ProcessEvent;
@ -50,6 +51,9 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
@DubboReference(timeout = 30000) @DubboReference(timeout = 30000)
private RemoteWorkflowService remoteWorkflowService; private RemoteWorkflowService remoteWorkflowService;
@DubboReference()
private RemoteCodeRuleService remoteCodeRuleService;
/** /**
* *
* *
@ -57,24 +61,24 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
* @return * @return
*/ */
@Override @Override
public CrmFlightBookingVo queryById(Long bookingId){ public CrmFlightBookingVo queryById(Long bookingId) {
return baseMapper.selectVoById(bookingId); return baseMapper.selectVoById(bookingId);
} }
/** /**
* *
* *
* @param bo * @param bo
* @param pageQuery * @param pageQuery
* @return * @return
*/ */
@Override @Override
public TableDataInfo<CrmFlightBookingVo> queryPageList(CrmFlightBookingBo bo, PageQuery pageQuery) { public TableDataInfo<CrmFlightBookingVo> queryPageList(CrmFlightBookingBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<CrmFlightBooking> lqw = buildQueryWrapper(bo); MPJLambdaWrapper<CrmFlightBooking> lqw = buildQueryWrapper(bo);
lqw.orderByDesc(CrmFlightBooking::getUpdateTime); lqw.orderByDesc(CrmFlightBooking::getUpdateTime);
Page<CrmFlightBookingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<CrmFlightBookingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
/** /**
* *
@ -91,20 +95,24 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
private MPJLambdaWrapper<CrmFlightBooking> buildQueryWrapper(CrmFlightBookingBo bo) { private MPJLambdaWrapper<CrmFlightBooking> buildQueryWrapper(CrmFlightBookingBo bo) {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<CrmFlightBooking> lqw = JoinWrappers.lambda(CrmFlightBooking.class) MPJLambdaWrapper<CrmFlightBooking> lqw = JoinWrappers.lambda(CrmFlightBooking.class)
.selectAll(CrmFlightBooking.class) .selectAll(CrmFlightBooking.class)
.eq(CrmFlightBooking::getDelFlag, "0") .eq(CrmFlightBooking::getDelFlag, "0")
.like(StringUtils.isNotBlank(bo.getApplyCode()), CrmFlightBooking::getApplyCode, bo.getApplyCode()) .like(StringUtils.isNotBlank(bo.getApplyCode()), CrmFlightBooking::getApplyCode, bo.getApplyCode())
.eq(bo.getPassengerId() != null, CrmFlightBooking::getPassengerId, bo.getPassengerId()) .eq(bo.getPassengerId() != null, CrmFlightBooking::getPassengerId, bo.getPassengerId())
.like(StringUtils.isNotBlank(bo.getPassengerName()), CrmFlightBooking::getPassengerName, bo.getPassengerName()) .like(StringUtils.isNotBlank(bo.getPassengerName()), CrmFlightBooking::getPassengerName,
.eq(bo.getTravelDate() != null, CrmFlightBooking::getTravelDate, bo.getTravelDate()) bo.getPassengerName())
.like(StringUtils.isNotBlank(bo.getDepartureLocation()), CrmFlightBooking::getDepartureLocation, bo.getDepartureLocation()) .eq(bo.getTravelDate() != null, CrmFlightBooking::getTravelDate, bo.getTravelDate())
.like(StringUtils.isNotBlank(bo.getArrivalLocation()), CrmFlightBooking::getArrivalLocation, bo.getArrivalLocation()) .like(StringUtils.isNotBlank(bo.getDepartureLocation()), CrmFlightBooking::getDepartureLocation,
.eq(StringUtils.isNotBlank(bo.getFlightDiscount()), CrmFlightBooking::getFlightDiscount, bo.getFlightDiscount()) bo.getDepartureLocation())
.eq(bo.getFlightAmount() != null, CrmFlightBooking::getFlightAmount, bo.getFlightAmount()) .like(StringUtils.isNotBlank(bo.getArrivalLocation()), CrmFlightBooking::getArrivalLocation,
.eq(StringUtils.isNotBlank(bo.getOssId()), CrmFlightBooking::getOssId, bo.getOssId()) bo.getArrivalLocation())
.eq(StringUtils.isNotBlank(bo.getBookingStatus()), CrmFlightBooking::getBookingStatus, bo.getBookingStatus()) .eq(StringUtils.isNotBlank(bo.getFlightDiscount()), CrmFlightBooking::getFlightDiscount,
.eq(StringUtils.isNotBlank(bo.getFlowStatus()), CrmFlightBooking::getFlowStatus, bo.getFlowStatus()) 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; return lqw;
} }
@ -118,6 +126,12 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
public Boolean insertByBo(CrmFlightBookingBo bo) { public Boolean insertByBo(CrmFlightBookingBo bo) {
CrmFlightBooking add = MapstructUtils.convert(bo, CrmFlightBooking.class); CrmFlightBooking add = MapstructUtils.convert(bo, CrmFlightBooking.class);
validEntityBeforeSave(add); validEntityBeforeSave(add);
// 自动生成申请单号
if(StringUtils.isBlank(add.getApplyCode())){
String applyCode = remoteCodeRuleService.selectCodeRuleCode("1019");
add.setApplyCode(applyCode);
}
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {
bo.setBookingId(add.getBookingId()); bo.setBookingId(add.getBookingId());
@ -141,8 +155,8 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
/** /**
* *
*/ */
private void validEntityBeforeSave(CrmFlightBooking entity){ private void validEntityBeforeSave(CrmFlightBooking entity) {
//TODO 做一些数据校验,如唯一约束 // TODO 做一些数据校验,如唯一约束
} }
/** /**
@ -154,11 +168,12 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
*/ */
@Override @Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){ if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验 // TODO 做一些业务上的校验,判断是否需要校验
} }
return baseMapper.deleteByIds(ids) > 0; return baseMapper.deleteByIds(ids) > 0;
} }
/** /**
* *
* *
@ -190,6 +205,7 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
} }
return MapstructUtils.convert(add, CrmFlightBookingVo.class); return MapstructUtils.convert(add, CrmFlightBookingVo.class);
} }
/** /**
* (: 稿退) * (: 稿退)
* *
@ -211,10 +227,10 @@ public class CrmFlightBookingServiceImpl implements ICrmFlightBookingService {
} else if (Objects.equals(processEvent.getStatus(), BusinessStatusEnum.FINISH.getStatus())) { } else if (Objects.equals(processEvent.getStatus(), BusinessStatusEnum.FINISH.getStatus())) {
crmFlightBooking.setBookingStatus(OAStatusEnum.COMPLETED.getStatus()); crmFlightBooking.setBookingStatus(OAStatusEnum.COMPLETED.getStatus());
} else if (Objects.equals(processEvent.getStatus(), BusinessStatusEnum.INVALID.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()); crmFlightBooking.setBookingStatus(OAStatusEnum.INVALID.getStatus());
} else if (Objects.equals(processEvent.getStatus(), BusinessStatusEnum.BACK.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()); crmFlightBooking.setBookingStatus(OAStatusEnum.DRAFT.getStatus());
} }

Loading…
Cancel
Save