ParameterGroupSaveAction.java

package com.mycim.webapp.actions.parameter.group;

import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.beans.PropertyUtils;
import com.mycim.valueobject.ObjectList;
import com.mycim.valueobject.consts.SessionNames;
import com.mycim.valueobject.prp.Operation;
import com.mycim.valueobject.prp.OperationParameterRelation;
import com.mycim.webapp.Constants;
import com.mycim.webapp.actions.PrpSetupAction;
import com.mycim.webapp.forms.OperationInfoForm;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * Parameter Group
 *
 * @author Johnson.Wang
 * @version 6.0.0
 * @date 2019/8/28
 **/
public class ParameterGroupSaveAction extends PrpSetupAction {

    @Override
    public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                              HttpServletResponse response) throws Exception {
        OperationInfoForm operationInfoForm = (OperationInfoForm) form;

        Operation operation = new Operation(operationInfoForm.getInstanceId(),
                                            getNamedSpace(ObjectList.OPERATION_KEY, LocalContext.getFacilityRrn()),
                                            ObjectList.OPERATION_KEY);
        operation = (Operation) getInstance(operation);

        PropertyUtils.copyProperties(operationInfoForm, operation);

        List<OperationParameterRelation> parameterRelations = prpService
                .getOperationParameters(operation.getInstanceRrn());

        operationInfoForm.setParameterId("");
        request.setAttribute(SessionNames.OPERATION_KEY, operation);
        request.setAttribute(SessionNames.PARAMETER_GROUP_FLAG_KEY, parameterRelations);

        this.processItemAction(request, operationInfoForm);
        return new ActionForward(mapping.getInput());
    }

    /**
     * 绑定新的parameter
     */
    public ActionForward create(ActionMapping mapping, OperationInfoForm form, HttpServletRequest request,
                                HttpServletResponse response) throws Exception {
        Operation operation = new Operation(form.getInstanceId(),
                                            getNamedSpace(ObjectList.OPERATION_KEY, LocalContext.getFacilityRrn()),
                                            ObjectList.OPERATION_KEY);

        operation = (Operation) getInstance(operation);

        String parameterId = form.getParameterId().trim().toUpperCase();

        prpService.insertOperationParameterRelation(operation.getInstanceRrn(), parameterId);

        return init(mapping, form, request, response);
    }

    public ActionForward delete(ActionMapping mapping, OperationInfoForm form, HttpServletRequest request,
                                HttpServletResponse response) throws Exception {
        long parameterSeq = Long.parseLong(request.getParameter(Constants.ITEM_KEY));
        long operationRrn = Long.parseLong(request.getParameter("operationRrn"));

        prpService.deleteOperationParameterRelation(operationRrn, parameterSeq);

        return init(mapping, form, request, response);
    }

}