package com.boco.nbd.wios.flow.service; import com.boco.nbd.framework.common.ResponseMessage2; import com.boco.nbd.framework.persistence.IBaseDaoService3; import com.boco.nbd.framework.workflow.entity.TaskInfoResponse; import com.boco.nbd.wios.core.entity.AlgorithmDic; import com.boco.nbd.wios.core.entity.ReportEntry; import com.boco.nbd.wios.flow.entity.bo.BusinessDataBO; import com.boco.nbd.wios.flow.entity.bo.LocalSubmitFlowBO; import com.boco.nbd.wios.flow.entity.bo.ManualSapBo; import com.boco.nbd.wios.flow.entity.bo.WorkTaskVO; import com.boco.nbd.wios.flow.entity.po.*; import com.boco.nbd.wios.flow.entity.qo.CamsOrderQo; import com.boco.nbd.wios.flow.entity.qo.FlowChartQo; import com.boco.nbd.wios.flow.entity.qo.FlowNodeUserQo; import com.boco.nbd.wios.flow.entity.vo.FlowChartVO; import com.boco.nbd.wios.flow.entity.vo.RegionInfoVO; import com.boco.nbd.wios.flow.entity.vo.VisitOrderVO; import com.boco.nbd.wios.flow.enums.OrderInfoEnum; import com.boco.nbd.wios.log.entity.po.InterfaceMonitorPO; import com.boco.nbd.wios.flow.entity.pdf.BlockPairBo; import com.boco.nbd.wios.manage.entity.bo.OrderBo; import com.boco.nbd.wios.manage.entity.bo.SupplierContractVo; import com.boco.nbd.wios.manage.entity.cams.enums.UploadFileType; import com.boco.nbd.wios.manage.entity.common.bo.UploadFile; import com.boco.nbd.wios.wx.entity.bo.MinaOrderTrack; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Date; import java.util.List; import java.util.Map; /** * @author:cao hai * @date:2022/6/28 8:36 * @version:V1.0 * @description:IOrderService * @modify: */ public interface IOrderService extends IBaseDaoService3<OrderPO> { /** * 流程流转 * * @param bo * @return */ ResponseMessage2<Boolean> submitFlow(LocalSubmitFlowBO bo); /** * 启动流程 * * @param po * @return */ ResponseMessage2<Boolean> startFlow(OrderPO po); /** * 获取待办列表 * * @param qo * @return */ WorkTaskVO getWaitDealWorkTask(CamsOrderQo qo); /** * 获取已办列表 * * @param qo * @return */ WorkTaskVO getMyFinishedWorkTask(CamsOrderQo qo); /** * 获取归档列表 * * @param qo * @return */ WorkTaskVO getArchivedWorkTask(CamsOrderQo qo); /** * 获取流转轨迹 * * @param processInsId * @return */ List<TaskInfoResponse> getWorkTrack(String processInsId); /** * 获取流程轨迹 * * @param processInsId * @return */ List<MinaOrderTrack> getMinaWorkTrack(String processInsId); /** * 获取menuId字段数据 * * @param menuId * @return */ List<MenuFieldPO> getMenuFields(String menuId); /** * 生成枚举字段 * * @return */ Map<String, Map<Object, String>> createEnumMap(); /** * 评分自动计算算法 * * @param parentKey * @return */ List<AlgorithmDic> getScoreAlgorithm(Integer parentKey); /** * 获取报告配置实体 * * @param parentKey * @return */ List<ReportEntry> getReportEntry(Integer parentKey); /** * 获取处理时限 * * @param nextNode * @param time * @return */ Date getDueDate(int nextNode, Date time); /** * 获取表单操作界面数据 * * @param workId * @return */ BusinessDataBO getBusinessData(String workId); /** * 根据OEMID获取主机厂级联关系 * * @param oemId * @return */ List<OemCascadePO> getOemCascade(String oemId); /** * 获取packType标识 * * @param packType * @return */ String getPackTypeId(String packType); /** * 保存勘测数据 * * @param po * @return */ boolean saveOrderSurvey(OrderSurveyPO po); /** * 保存安装数据 * * @param po * @param submitUserName * @return */ boolean saveOrderInstall(OrderInstallPO po, String submitUserName); /** * 获取流程用户组 * * @return */ List<BaseUserPO> getSuperUserByGroup(); /** * 加载流程节点用户 * * @param qo * @return */ List<FlowNodeUserPO> getFlowNodeUserInfo(FlowNodeUserQo qo); /** * 获取工单信息 * * @param id * @return */ OrderPO getOrder(String id); /** * 通过车企安装单号获取工单 * @param outOrderId * @return */ OrderPO getOrderByOutOrderId(String outOrderId); /** * 获取勘测数据 * * @param orderId * @return */ OrderSurveyPO getOrderSurvey(String orderId); /** * 获取安装数据 * * @param orderId * @return */ OrderInstallPO getOrderInstall(String orderId); /** * 更新业务数据 * * @param business */ void updateBusinessData(BusinessDataBO business); /** * 加载区域信息==》mysql 递归查询不友善 * * @return */ Map<Integer, RegionInfoVO> getRegionInfo(); /** * 获取工单信息 * * @param id * @param infoEnum * @return */ Map<String, Object> getOrderInfo(String id, OrderInfoEnum infoEnum); /** * 是否用户导出userPhone权限 * * @param account * @return */ boolean hasExportUserPhone(String account); /** * 通过workId获取轨迹 * * @param workId * @return */ List<TaskInfoResponse> getTrackByWorkId(String workId); /** * 订单安装项目表更新=>全量数据处理 * * @param request */ void saveInstallItem(LocalSubmitFlowBO request); /** * 保存附件 * * @param files * @param type * @param thirdPartyId * @return */ int saveFileItem(List<UploadFile> files, UploadFileType type, String thirdPartyId); /** * 保存报告 * * @param files * @param type * @param thirdPartyId * @return */ int saveReportItem(List<UploadFile> files, UploadFileType type, String thirdPartyId); /** * 获取短信推送数据 * * @param startTime * @param endTime * @return */ List<SendMessagePO> getSendMessageData(Date startTime, Date endTime); /** * 根据workId获取流程信息 * * @param workId * @return */ TaskInfoResponse getTaskByWorkId(String workId); /** * 同步Sap * * @param bo */ void pushSapOrder(ManualSapBo bo); /** * 获取流程数据 * * @param qo * @return */ ResponseMessage2<FlowChartVO> getFlowChart(FlowChartQo qo); /** * 获取地市查询条件 * * @param regionId * @return */ String getRegionQo(String regionId); /** * 获取服务商有效合同 * * @param supplierId * @return */ SupplierContractVo getSupplierContract(int supplierId); /** * 获取pm用户 * * @return */ List<PmUserPO> getPmUser(); /** * 获取可用安装服务商 * * @return */ List<UsableSupplierPO> getUsableSupplier(); /** * 获取服务商接单信息 * * @param supplierId * @param regionId * @return */ List<SupplierReceivePO> getSupplierReceiveInfo(Integer supplierId, String regionId); /** * 写入接口监控日志 * * @param po * @return */ int addMonitorLog(InterfaceMonitorPO po); /** * 生成pdf文件 * @param blockPairBo * @param response * @return */ void getAutogeneratePdf(BlockPairBo blockPairBo, HttpServletResponse response); /** * 获取回访订单数据 * @param orderBo * @return */ List<VisitOrderVO> getVisitOrderDate(OrderBo orderBo); }