ResistEqptMappingAction.java

package com.mycim.webapp.actions.resisteqptmapping;

import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.jdbc.Page;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.valueobject.MessageIdList;
import com.mycim.valueobject.ems.ResistEqptMapping;
import com.mycim.webapp.actions.ResistSetupAction;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;

/**
 * @author yanbing.chen
 * @date 2019/11/5
 * @since 1.8
 **/
public class ResistEqptMappingAction extends ResistSetupAction {

    public ActionForward initResistEqptMapping(HttpServletRequest request, ActionMapping mapping) {
        return mapping.findForward("resistEqptMapping");
    }

    public Map queryMappingByPage(Map argMap) {
        ResistEqptMapping mapping = buildParam(argMap);
        Page page = new Page(MapUtils.getInteger(argMap, "page"), MapUtils.getInteger(argMap, "limit"));
        page = resistService.qryResistEqptMappingByPage(mapping, page);
        Map pageJson = new HashMap();
        pageJson.put("totalItems", page.getTotalItems() + "");
        pageJson.put("items", page.getResults());
        return pageJson;
    }

    public void createMapping(ResistEqptMapping mapping) {
        String user = LocalContext.getUserId();
        validNotEmptyParam(mapping);
        Assert.isFalse(resistService.isOnlyRealPipe(mapping.getEqptId(), mapping.getPrPipe(), mapping.getUnit()),
                       Errors.create().key(MessageIdList.RESIST_PIPELINE_MAPPING_EXISTS)
                             .content("Pipeline mapping exists!").build());
        mapping.setCreateBy(user);
        resistService.addResistEqptMapping(mapping);
    }

    public void modifyMapping(ResistEqptMapping mapping) {
        String user = LocalContext.getUserId();
        validNotEmptyParam(mapping);
        Assert.isTrue(resistService.isOnlyRealPipe(mapping.getEqptId(), mapping.getPrPipe(), mapping.getUnit()),
                      Errors.create().key(MessageIdList.RESIST_PIPELINE_MAPPING_EXISTS)
                            .content("Pipeline mapping exists!").build());
        mapping.setModifyBy(user);
        resistService.modifyResistEqptMapping(mapping);
    }

    public void deleteMapping(ResistEqptMapping mapping) {
        String user = LocalContext.getUserId();
        validNotEmptyParam(mapping);
        mapping.setModifyBy(user);
        resistService.deleteResistEqptMapping(mapping);
    }

    /**
     * 参数验证
     */
    private void validNotEmptyParam(ResistEqptMapping mapping) {
        Assert.isFalse(StringUtils.isBlank(mapping.getResistNo()) || StringUtils.isEmpty(mapping.getResistNo()),
                       Errors.create().key(MessageIdList.RESIST_RESIST_MISSING).content("Resist not exist!").build());
        Assert.isFalse(StringUtils.isBlank(mapping.getEqptId()) || StringUtils.isEmpty(mapping.getEqptId()),
                       Errors.create().key(MessageIdList.EQUIPMENT_ID_CANNOT_EMPTY)
                             .content("Entity ID cannot be empty!").build());

        Assert.isFalse(StringUtils.isBlank(mapping.getPrPipe()),
                       Errors.create().key(MessageIdList.RESIST_PRPIPE_CAN_NOT_EMPTY)
                             .content("PRPipe can not be empty!").build());
        Assert.isFalse(StringUtils.contains(mapping.getPrPipe(), "*"),
                       Errors.create().key(MessageIdList.RESIST_PRPIPE_CAN_NOT_CONTAINS_ASTERISK)
                             .content("PRPipe can not contains *!").build());

        Assert.isFalse(StringUtils.isBlank(mapping.getUnit()) || StringUtils.isEmpty(mapping.getUnit()),
                       Errors.create().key(MessageIdList.EQUIPMENT_CHAMBER_CAN_NOT_EMPTY)
                             .content("Chamber ID can not be empty!").build());
        Assert.isFalse(StringUtils.contains(mapping.getUnit(), "*"),
                       Errors.create().key(MessageIdList.RESIST_PRPIPE_CAN_NOT_CONTAINS_ASTERISK)
                             .content("Chamber ID can not contains *!").build());
    }

    protected ResistEqptMapping buildParam(Map argMap) {
        ResistEqptMapping mapping = new ResistEqptMapping();
        mapping.setResistNo(MapUtils.getString(argMap, "resistNo"));
        mapping.setTransPerformedBy(MapUtils.getString(argMap, "transPerformedBy"));
        mapping.setEqptId(MapUtils.getString(argMap, "eqptId"));
        mapping.setUnit(MapUtils.getString(argMap, "unit"));
        mapping.setPrPipe(MapUtils.getString(argMap, "prPipe"));
        mapping.setTransStartTime(MapUtils.getString(argMap, "startDate"));
        mapping.setTransEndTime(MapUtils.getString(argMap, "endDate"));
        return mapping;
    }

}