Process109.java 2.6 KB
Newer Older
苗卫卫 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
package com.boco.nbd.wios.flow.process;

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.FlowConstant;
import com.boco.nbd.wios.flow.entity.bo.LocalSubmitFlowBO;
import com.boco.nbd.wios.flow.enums.FlowNodeEnum;
import com.boco.nbd.wios.flow.util.ProcessUtil;
import org.springframework.stereotype.Service;

import java.util.Date;

/**
 * @author:cao hai
 * @date:2022/6/30 17:05
 * @version:V1.0
 * @description:Process109
 * @modify:
 */
@Service("Process109")
public class Process109 extends AbstractFlow {


    /**
     * 预处理(业务数据调整)
     *
     * @param request
     */
    @Override
    protected void preProcess(SubmitFlowRequest request) {
        LocalSubmitFlowBO bo = (LocalSubmitFlowBO) request;
        if (SubmitTypeEnum.Transfer.equals(bo.getSubmitType())) {
            bo.userNamesHandler();
            bo.getTaskParam().put(FlowConstant.SUPPLIER_ID, bo.getBusiness().getInstallSupplierId());
            bo.getTaskParam().put(FlowConstant.SUPPLIER_NAME, bo.getBusiness().getInstallSupplierName());
            bo.setCommentMsg(bo.getCurrentNodeEnum().getValue() + "工单转派" + bo.getBusiness().getInstallStaffName());
        } else if (SubmitTypeEnum.TaskFlow.equals(bo.getSubmitType())) {
            StringBuffer builder = new StringBuffer();
            boolean refuseFlag = ProcessUtil.compare(bo.getBusiness().getWhether(), 0);
            builder.append(FlowNodeEnum.NODE_109.getValue() + ":");
            builder.append(refuseFlag ? "预约失败;" : "预约成功;");
            if (refuseFlag) {
                if (bo.getBusiness().getInstallStaffId() == null) {
                    //只更新数据
                    bo.setSubmitType(SubmitTypeEnum.UpdateVariable);
                } else {
                    bo.getUserNames().add(bo.getBusiness().getInstallStaffId() + "");
                    bo.setNextNodeEnum(FlowNodeEnum.NODE_108);
                }
            } else {
                bo.setNextNodeEnum(FlowNodeEnum.NODE_110);
                bo.getBusiness().setInstallReserveTime(new Date());
                bo.userNamesHandler();

            }
            bo.setCommentMsg(builder.toString());
        }
    }

    /**
     * 验证参数
     *
     * @param request
     */
    @Override
    protected void verifyParam(SubmitFlowRequest request) {

    }

    /**
     * 后续处理
     *
     * @param request
     */
    @Override
    protected void postProcess(SubmitFlowRequest request) {

    }
}