HandleAction.java
package com.mycim.webapp.actions.step;
import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.valueobject.consts.OcapConts;
import com.mycim.valueobject.consts.OcapTypeEnum;
import com.mycim.valueobject.consts.SpecifiedActionEnum;
import com.mycim.valueobject.ocap.OcapCard;
import com.mycim.valueobject.ocap.dto.HandleDTO;
import com.mycim.valueobject.ocap.dto.OcapDoActionDTO;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.OcapStepAbstractAction;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
/**
* @author songpy
* @version 1.0.0
* @date 2021/5/25
**/
public class HandleAction extends OcapStepAbstractAction {
public HandleAction() {
this.actionType = SpecifiedActionEnum.OCAP_HANDLE;
}
/**
* Action方法
*/
public void saveOCAPHandle(HandleDTO handleDTO) {
OcapDoActionDTO ocapDoActionDTO = buildBaseOcapDoActionDTO(handleDTO);
ocapDoActionDTO.setOcapId(handleDTO.getOcapId());
ocapDoActionDTO.setLotId(handleDTO.getLotId());
Map parameters = (Map) WebUtils.getCacheString2Obj(handleDTO.getCacheParametersInfo());
ocapDoActionDTO.setParameters(parameters);
Assert.isFalse(
StringUtils.isEmpty(ocapDoActionDTO.getOcapId()) || StringUtils.isEmpty(ocapDoActionDTO.getActionId()),
Errors.create().content("The parameter is missing. Please login again.").build());
OcapCard ocap = wipQueryService
.getOcapCardByUniqueKey(LocalContext.getFacilityRrn(), handleDTO.getOcapId(), handleDTO.getLotId());
validOcapMainLot(ocap);
// check
if (actionType.equals(SpecifiedActionEnum.OCAP_HANDLE)) {
Assert.isFalse(StringUtils.isEmpty(handleDTO.getLotHandle()) &&
StringUtils.isEmpty(handleDTO.getEquipmentHandle()) &&
StringUtils.isEmpty(handleDTO.getOtherHandle()),
Errors.create().content("Please choose OCAP Handle!").build());
Assert.isFalse(
OcapTypeEnum.isInline(ocap.getOcapType()) && StringUtils.isEmpty(handleDTO.getOtherHandle()) &&
StringUtils.isEmpty(handleDTO.getLotHandle()),
Errors.create().content("Please choose OCAP Handle!").build());
Assert.isFalse(StringUtils.isEmpty(handleDTO.getOtherHandle()) &&
StringUtils.isEmpty(handleDTO.getEquipmentHandle()) &&
OcapTypeEnum.isOffline(ocap.getOcapType()),
Errors.create().content("Please choose Equipment Handle!").build());
Assert.isFalse(
StringUtils.isEmpty(handleDTO.getOtherHandle()) && StringUtils.isEmpty(handleDTO.getReasonGroup()),
Errors.create().content("Please choose Reason Group!").build());
Assert.isFalse(
StringUtils.isEmpty(handleDTO.getOtherHandle()) && StringUtils.isEmpty(handleDTO.getReasonCode()),
Errors.create().content("Please choose Reason Code!").build());
}
buildOcapDoActionDTOCaseDataByOcapHandle(ocapDoActionDTO, handleDTO);
ocapService.doReviewAction(LocalContext.getFacilityRrn(), ocapDoActionDTO);
}
private void buildOcapDoActionDTOCaseDataByOcapHandle(OcapDoActionDTO ocapDoActionDTO, HandleDTO handleDTO) {
ocapDoActionDTO.setTransDatas(new HashMap<String, String>());
ocapDoActionDTO.getTransDatas()
.put(OcapConts.MapKey.KEY_LOT_HANDLE, StringUtils.trimToUpperCase(handleDTO.getLotHandle()));
ocapDoActionDTO.getTransDatas().put(OcapConts.MapKey.KEY_EQUIPMENT_HANDLE,
StringUtils.trimToUpperCase(handleDTO.getEquipmentHandle()));
ocapDoActionDTO.getTransDatas()
.put(OcapConts.MapKey.KEY_OTHER_HANDLE, StringUtils.trimToUpperCase(handleDTO.getOtherHandle()));
ocapDoActionDTO.getTransDatas()
.put(OcapConts.MapKey.KEY_REASON_GROUP, StringUtils.trimToUpperCase(handleDTO.getReasonGroup()));
ocapDoActionDTO.getTransDatas()
.put(OcapConts.MapKey.KEY_REASON_CODE, StringUtils.trimToUpperCase(handleDTO.getReasonCode()));
ocapDoActionDTO.getTransDatas()
.put(OcapConts.MapKey.KEY_DEPARTMENT, StringUtils.trimToUpperCase(handleDTO.getDepartment()));
}
@Override
protected void setActionUrl(HttpServletRequest request) {
request.setAttribute(ACTION_URL_KEY, "ocapStepHandle.do");
}
}