package com.ydtech.modules.order.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ydtech.core.page.HttpResult; import com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto; import com.ydtech.modules.admin.model.vo.QxFrontlineAgentVo; import com.ydtech.modules.fnc.entity.vo.ProblemOrderQueryVo; import com.ydtech.modules.order.entity.InsAreaCompany; import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving; import com.ydtech.modules.order.entity.InsOrders; import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto; import com.ydtech.modules.order.entity.dto.SubOrderCountDTO; import com.ydtech.modules.order.entity.vo.*; import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew; import org.apache.ibatis.annotations.Param; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.List; import java.util.Map; /** * @author Administrator * @description 针对表【ins_area_company(报价渠道)】的数据库操作Service * @createDate 2023-01-31 15:51:19 */ public interface InsAreaCompanyService extends IService { /** * 通过子订单查询子订单 * * @param companyId 子订单 * @return InsAreaCompany */ InsAreaCompany getByIdIsExist(String companyId); /** * 通过 保险公司订单号查询子订单 * * @param insOrderNo 保险公司订单号 * @return InsAreaCompany */ InsAreaCompany getByInsOrderNo(String insOrderNo); /** * 修改子订单 并且修改订单状态 * * @param insAreaCompany */ void updateCompanyAndOrders(InsAreaCompany insAreaCompany); /** * 修改子订单 并且修改订单状态 * * @param insAreaCompany */ @Transactional default void updateCompanyAndOrdersMessage(InsAreaCompany insAreaCompany, String messages) { updateCompanyAndOrders(insAreaCompany); saveInsOrdersUnderwritingReason(insAreaCompany.getId(), messages, insAreaCompany.getOrderstatus()); } /** * 修改子订单 并且修改订单状态 最新 * * @param insAreaCompany */ void updateCompanyAndOrdersNew(InsAreaCompany insAreaCompany); /** * 插入子订单 并且修改订单状态 * * @param insAreaCompany * @param insAreaCompanyAccidentalDriving 驾意险信息 */ String insertCompanyAndOrders(InsAreaCompany insAreaCompany, InsAreaCompanyAccidentalDriving insAreaCompanyAccidentalDriving); String insertCompanyAndOrders(String subOrderNo,InsAreaCompany insAreaCompany, InsAreaCompanyAccidentalDriving insAreaCompanyAccidentalDriving); void insertCompanyAndOrders(InsAreaCompany insAreaCompany, List insAreaCompanyAccidentalDriving); /** * 插入子订单 并且修改订单状态 * * @param insAreaCompany */ void insertCompanyAndOrders(InsAreaCompany insAreaCompany); /** * 通过主订单查询子订单号 * * @param orderNo 主订单号 */ List getByOrderNo(String orderNo); /** * 查询最新状态的子订单 * * @param orderNo 主订单号 */ String queryLatestStatus(String orderNo); List getorDerIds(); /** * 查询待审核的订单 * * @return */ Page getAuditOrders(Page page, OrderQueryVo orderQueryVo, List excludeKeys); /** * 查询已审核得订单 * * @param page * @param orderQueryVo * @return */ Page getAlreadyAuditOrders(Page page, OrderQueryVo orderQueryVo); List getByUserId(String userId); InsOrders selectPromotionBy(String userId, int i); InsAreaCompany getByInsOrderNoNew(String insOrderNo, String timeFiltering); InsOrders selectByInFeeOrderNew(InsFeeOrderNew insFeeOrderNew); /** * @version * @author: hxl * @Date: 2024/5/8 18:08 * @Description: 根据年份查询数据 */ OrderVo selectEntityByinsOrderNo(String insOrderNo, String timeFiltering); /** * @version * @author: hxl * @Date: 2024/5/13 8:42 * @Description: 批量更新险种状态 */ HttpResult updateBatchPruductById(String subOrderId); /** * @version * @author: hxl * @Date: 2024/6/3 11:41 * @Description: 通过类型查询数据 */ InsOrders selectByInFeeOrderNewByType(InsFeeOrderNew insFeeOrderNew, String type); /** * 保存子订单信息 * * @return */ String saveSubOrder(BaseQuoteInfoVo quoteInfo, BaseQuoteVo quoteVo); /** * 根据订单id 获取已承保的子订单信息 * * @param orderno * @return */ InsAreaCompany getUnderWrittenSubOrder(String orderno); /** * 标注疑问订单 * * @param problemOrderQueryVo * @return */ boolean markProblemOrder(ProblemOrderQueryVo problemOrderQueryVo); /** * 获取审核驳回订单 * * @param userId * @return */ Page getRejectOrder(Page page, String userId, RejectPageQueryVo rejectPageQueryVo); /** * 更新外部订单 * * @param insOrdersEditingVo * @return */ boolean updateOrderAndSubOrder(InsOrdersEditingVo insOrdersEditingVo); /** * @version * @author: hxl * @Date: 2024/7/10 17:40 * @Description: 获取暂存订单数据 */ Page getStageOrder(Page page, String userId, RejectPageQueryVo rejectPageQueryVo); /** * @version * @author: whp * @Date: 2024/8/08 * @Description: 控制台出单人力 */ QxFrontlineAgentDto getOrderManpower(List ids); QxFrontlineAgentDto getOrderManpowerByUserId(String id); QxFrontlineAgentDto getOrderManpowerNew(@Param("vo") QxFrontlineAgentDto qxFrontlineAgentDto); /** * @version * @author: hxl * @Date: 2024/8/30 10:23 * @Description: 通过用户id查询到导出的数据 */ Double getOrderPremiumByUserIds(QxFrontlineAgentVo qxFrontlineAgentVo); /** * 保存核保退回原因 * * @param subNoOrder 子订单号 * @param message 退回原因 * @param orderStatus 订单状态 */ void saveInsOrdersUnderwritingReason(String subNoOrder, String message, String orderStatus); /** * @version * @author: hxl * @Date: 2024/9/14 16:58 * @Description: 查询外部审核通过的订单 */ Page orderCheckPage(Page page, String id, RejectPageQueryVo rejectPageQueryVo); /** * @version * @author: hxl * @Date: 2024/9/18 10:56 * @Description: 外部订单逻辑删除 */ void updateDeleteFalg(String id); /** * 获取子订单数量 * * @param orderNo * @return */ Map getSubOrderCountDTO(List orderNo); /** * @version * @author: hxl * @Date: 2024/9/30 8:54 * @Description: 财务查询所有的驳回订单数据 */ Page getAllRejectOrders(Page page, RejectPageQueryVo rejectPageQueryVo); /** * 更新费用匹配失败的日志 * @param companyId * @param feeMatchErrMsg * @return */ boolean updateFeeMatchErrMsg(String companyId,String feeMatchErrMsg); /** * @version * @author: hxl * @Date: 2024/10/17 10:55 * @Description: 查詢已承保的保单数据 */ Page queryPageOrderCB(Page page, OrderQueryVo orderQueryVo); /** * 通过用户id获取预收净利润 * @param userId * @return */ BigDecimal getExpectNetProfit(QxFrontlineAgentVo qxFrontlineAgentVo); /** * @version * @author: hxl * @Date: 2024/10/22 10:58 * @Description: 获取时间范围内的已承保的订单 */ List findListByDate(String benginDate, String endDate); }