package com.boco.nbd.wios.flow.process; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import com.boco.nbd.cams.core.util.LambdaUtils; 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.po.OrderPO; 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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; /** * @author:cao hai * @date:2022/6/30 17:04 * @version:V1.0 * @description:Process104 * @modify: */ @Service("Process104") public class Process104 extends AbstractFlow { @Autowired protected IOrderService orderService; /** * 预处理(业务数据调整) * * @param request */ @Override protected void preProcess(SubmitFlowRequest request) { LocalSubmitFlowBO bo = (LocalSubmitFlowBO) request; if (SubmitTypeEnum.Transfer.equals(bo.getSubmitType())) { bo.userNamesHandler(); bo.setCommentMsg(bo.getCurrentNodeEnum().getValue() + "工单转派" + bo.getBusiness().getSurveyStaffName()); } else if (SubmitTypeEnum.TaskFlow.equals(bo.getSubmitType())) { if (bo.getOldBusiness().getSurveyConnectTime() == null) { bo.getBusiness().setSurveyConnectTime(new Date()); } StringBuffer builder = new StringBuffer(); boolean electricExpand = ProcessUtil.compare(bo.getBusiness().getElectricExpand(), 1); builder.append(electricExpand ? "电力报装" : ""); if (electricExpand) { //自己流转给自己 bo.getUserNames().add(bo.getSubmitUserId()); bo.setNextNodeEnum(FlowNodeEnum.NODE_115); } else { boolean flag = ProcessUtil.compare(bo.getBusiness().getWhether(), 0); builder.append(flag ? "预约失败" : "预约成功"); builder.append(";" + System.lineSeparator()); builder.append(flag ? LambdaUtils.getFieldApiModelProperty(OrderPO::getSurveyFollowTime) : LambdaUtils.getFieldApiModelProperty(OrderPO::getSurveyReserveTime)); builder.append(":" + System.lineSeparator()); builder.append(flag ? DateUtil.format(bo.getBusiness().getSurveyFollowTime(), DatePattern.NORM_DATETIME_PATTERN) : DateUtil.format(bo.getBusiness().getSurveyReserveTime(), DatePattern.NORM_DATETIME_PATTERN)); if (flag) { bo.setSubmitType(SubmitTypeEnum.UpdateVariable); } else { bo.userNamesHandler(); bo.setNextNodeEnum(FlowNodeEnum.NODE_105); } } bo.setCommentMsg(builder.toString()); } } /** * 验证参数 * * @param request */ @Override protected void verifyParam(SubmitFlowRequest request) { } /** * 后续处理 * * @param request */ @Override protected void postProcess(SubmitFlowRequest request) { } }