AutoBankInAction.java
package com.mycim.webapp.actions.operation.run;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.exception.SystemIllegalArgumentException;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.valueobject.ObjectList;
import com.mycim.valueobject.consts.SessionNames;
import com.mycim.valueobject.consts.TransactionNames;
import com.mycim.valueobject.prp.Operation;
import com.mycim.valueobject.wip.Lot;
import com.mycim.webapp.actions.WipSetupAction;
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;
/**
* @author Johnson.Wang
* @version 6.0.0
* @date 2019/10/10
**/
public class AutoBankInAction extends WipSetupAction {
@Override
public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
Map parameters = (Map) request.getAttribute(SessionNames.PARAMETERSINFO_KEY);
List<Map> handleLotInfos = (List<Map>) request.getAttribute(SessionNames.HANDLE_LOT_INFO_KEY);
handleLotInfos = handleLotInfos == null ? new ArrayList<>() : handleLotInfos;
for (Map map : handleLotInfos) {
Lot lot = (Lot) map.get("Lot");
lot = lotQueryService.getLot(lot.getLotId());
String operationId = lot.getOperationId();
Operation operation = new Operation(operationId,
getNamedSpace(ObjectList.OPERATION_KEY, LocalContext.getFacilityRrn()),
ObjectList.OPERATION_KEY);
operation = prpService.getOperation(operation.getInstanceId(), operation.getNamedSpace());
if (StringUtils.equalsIgnoreCase("on", operation.getMonitorFlag())) {
List lots = new ArrayList();
Map transMap = new HashMap();
lots.add(lot);
transMap.put("lots", lots);
transMap.put("transId", TransactionNames.NPW_BANK_IN);
transMap.put("transComments", "Auto enter monitor");
transMap.put("operationId", operationId);
transMap.put("operationRrn",
getInstanceRrn(operationId, LocalContext.getFacilityRrn(), ObjectList.OPERATION_KEY));
transMap.put("userRrn", LocalContext.getUserRrn());
transMap.put("userId", LocalContext.getUserId());
transMap.put("facilityRrn", LocalContext.getFacilityRrn());
transMap.put("lotTypeInBank", "main");
transMap.put("status", "PROCESSING");
transMap.put("subStatus", "WAITING");
// checkAndCreateLotsTransLock(LocalContext.getUserRrn(), TransactionNames.LOCK_AUTOBANKIN_LOT, lots,
// "The lot auto bank in, in AutoBankInAction by: " +
// LocalContext.getUserId());
try {
dmmService.bankIn(transMap);
} catch (Exception e) {
// removeLotLockWhenTransError(LocalContext.getUserRrn(), lots, TransactionNames.LOCK_AUTOBANKIN_LOT,
// "The lot auto bank in fail, in AutoBankInAction by: " +
// LocalContext.getUserId());
throw new SystemIllegalArgumentException(
Errors.create().content("The lot auto bank in fail").build());
}
}
}
parameters.put(SessionNames.RUNSTEP_FLAG, "0");
request.getRequestDispatcher(mapping.findForward("workflow").getPath()).forward(request, response);
return null;
}
}