package com.boco.nbd.wios.flow.process; import com.boco.nbd.framework.common.ResponseMessage2; import com.boco.nbd.framework.workflow.entity.SubmitFlowRequest; import com.boco.nbd.framework.workflow.entity.SubmitTypeEnum; import com.boco.nbd.framework.workflow.flow.AbstractFlow; import com.boco.nbd.wios.flow.entity.bo.LocalSubmitFlowBO; import com.boco.nbd.wios.flow.entity.bo.SapStatisticsBO; import com.boco.nbd.wios.flow.enums.FlowNodeEnum; import com.boco.nbd.wios.flow.service.IOrderService; import com.boco.nbd.wios.flow.util.ProcessUtil; import com.boco.nbd.wios.log.entity.po.InterfaceMonitorPO; import com.boco.nbd.wios.log.enums.InterfaceMonitorEnum; import com.boco.nbd.wios.manage.service.impl.OrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; /** * @author:cao hai * @date:2022/6/30 17:05 * @version:V1.0 * @description:Process112 * @modify: */ @Service("Process112") @Slf4j public class Process112 extends AbstractFlow { @Autowired protected IOrderService orderService; @Autowired private OrderService oldOrderService; /** * 预处理(业务数据调整) * * @param request */ @Override protected void preProcess(SubmitFlowRequest request) { LocalSubmitFlowBO bo = (LocalSubmitFlowBO) request; if (SubmitTypeEnum.TaskFlow.equals(bo.getSubmitType())) { StringBuffer builder = new StringBuffer(); boolean refuseFlag = ProcessUtil.compare(bo.getBusiness().getWhether(), 0); builder.append(FlowNodeEnum.NODE_107.getValue() + ":"); builder.append(refuseFlag ? "审核不通过;" : "审核通过;"); if (refuseFlag) { Integer failNum = bo.getOldBusiness().getInstallCheckFailNum(); if (failNum == null) { failNum = 0; } bo.getBusiness().setInstallCheckFailNum(failNum + 1); builder.append(System.lineSeparator()); builder.append(bo.getBusiness().getInstallFinishFailReason()); bo.setNextNodeEnum(FlowNodeEnum.NODE_111); } else { bo.getBusiness().setInstallApproveTime(new Date()); //移桩订单直接归档,个人客户不上传开票系统 boolean shiftOrder = (bo.getOldBusiness().getType() == 1); FlowNodeEnum nextNodeEnum = shiftOrder ? FlowNodeEnum.NODE_113 : FlowNodeEnum.NODE_END; //modify2022-10-09 个人客户也上传开票系统 // if (shiftOrder && WiosConstant.PERSONAL_OEM_CODE.equals(po.getOemCode())) { // nextNodeEnum = FlowNodeEnum.NODE_114; // } bo.setNextNodeEnum(nextNodeEnum); } bo.setCommentMsg(builder.toString()); } } /** * 验证参数 * * @param request */ @Override protected void verifyParam(SubmitFlowRequest request) { } /** * 后续处理 * * @param request */ @Override protected void postProcess(SubmitFlowRequest request) { LocalSubmitFlowBO bo = (LocalSubmitFlowBO) request; if (!ProcessUtil.compare(bo.getBusiness().getWhether(), 0)) { //调用Sap接口 try { ResponseMessage2<SapStatisticsBO> response = oldOrderService.pushOrder(request.getWorkId()); SapStatisticsBO sapStatisticsBO = response.getData(); if (sapStatisticsBO != null) { InterfaceMonitorPO interfaceMonitorPO = sapStatisticsBO.create(InterfaceMonitorEnum.Evaluation_InstallationAuditSap); orderService.addMonitorLog(interfaceMonitorPO); } } catch (Exception ex) { //modify 2022-10-15 不抛出异常 log.error(request.getWorkId() + " sap订单状态推送失败:" + ex.getMessage()); //throw new FlowException(request.getWorkId() + " sap订单状态推送失败:" + ex.getMessage()); } } } }