ObjectAttributesAction.java

package com.mycim.webapp.actions.setting.system.objectAttribute;

import com.fa.sesa.i18n.I18nUtils;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.SystemSetupAction;
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.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * objectattributes 处理
 *
 * @author pinyan.song
 * @version 6.0.0
 * @date 2019-10-14
 **/
public class ObjectAttributesAction extends SystemSetupAction {

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

        String objType = WebUtils.getParameter("objecttype", request);
        request.setAttribute("objType", objType);
        Long objectRrn = WebUtils.getParameterLong("objectrrn", request);
        request.setAttribute("objectRrn", objectRrn);

        Long facilityRrn = LocalContext.getFacilityRrn();

        List<Map> attributes = sysService
                .getAllAttributes(objectRrn.longValue(), baseService.getNamedSpace(facilityRrn, objType), objType,
                                  I18nUtils.getCurrentLanguage());
        for (Map o : attributes) {
            if (StringUtils.isEmpty(MapUtils.getString(o, "LABELTEXT"))) {
                o.put("LABELTEXT", StringUtils.EMPTY);
            }

            if (StringUtils.isEmpty(MapUtils.getString(o, "DEFAULTVALUE"))) {
                o.put("DEFAULTVALUE", StringUtils.EMPTY);
            }

            if (StringUtils.isEmpty(MapUtils.getString(o, "ATTRIBUTEVALUE"))) {
                o.put("ATTRIBUTEVALUE", StringUtils.EMPTY);
            }
        }
        request.setAttribute("attributes", attributes);

        if (request.getParameter("modify") != null) {
            List<Map> objectAttributeValues = new ArrayList();
            String[] attributeValues = request.getParameterValues("attributeValue");
            String[] fieldRrns = request.getParameterValues("fieldRrn");
            long instanceRrn = objectRrn.longValue();
            for (int i = 0; i < attributeValues.length; i++) {
                Map attributeValue = new HashMap();
                attributeValue.put("instanceRrn", new Long(instanceRrn).toString());
                attributeValue.put("instanceVersion", "1");
                attributeValue.put("fieldRrn", fieldRrns[i]);
                attributeValue.put("attributeValue", attributeValues[i]);
                objectAttributeValues.add(attributeValue);
            }

            sysService.maintainAttribute(objectAttributeValues);
        }

        return mapping.getInputForward();
    }

}