ReKeyDataAction.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.framework.utils.lang.collections.MapUtils;
import com.mycim.framework.utils.msg.JsonUtils;
import com.mycim.valueobject.consts.OcapTypeEnum;
import com.mycim.valueobject.consts.SpecifiedActionEnum;
import com.mycim.valueobject.ocap.OcapCard;
import com.mycim.valueobject.ocap.dto.OcapDataCollectionDTO;
import com.mycim.valueobject.ocap.dto.OcapDoActionDTO;
import com.mycim.valueobject.ocap.dto.ReKeyDataDTO;
import com.mycim.webapp.WebUtils;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
* @author songpy
* @version 1.0.0
* @date 2021/5/25
**/
public class ReKeyDataAction extends AbstractSpcStepAction {
public ReKeyDataAction() {
this.actionType = SpecifiedActionEnum.RE_KEYIN_DATA;
}
/**
* Action方法
*/
public List<OcapDataCollectionDTO> queryReKeyInData(Map<String, Object> params) {
Long dcolRrn = MapUtils.getLongValue(params, "dcolRrn");
return ocapService.getAllDataCollectionPointInfo(dcolRrn);
}
/**
* Action方法
*/
public void collectionReKeyInData(ReKeyDataDTO reKeyDataDTO) throws Exception {
Map parameters = (Map) WebUtils.getCacheString2Obj(reKeyDataDTO.getCacheParametersInfo());
// check
Assert.isFalse(reKeyDataDTO.getOcapRrn() == null || reKeyDataDTO.getOcapRrn() <= 0,
Errors.create().content("The parameter is missing. Please login again.").build());
OcapCard ocap = wipQueryService.getOcapCardByPrimaryKey(reKeyDataDTO.getOcapRrn());
Assert.isFalse(OcapTypeEnum.isOffline(ocap.getOcapType()),
Errors.create().content("OFFLINE OCAP cannot perform the specified operation: remeasurement")
.build());
validOcapMainLot(ocap);
List<Map> dataCollectionList = JsonUtils.toList(reKeyDataDTO.getDataCollection(), Map.class);
OcapDoActionDTO doActionDTO = ocapService
.collectReKeyInData(LocalContext.getFacilityRrn(), LocalContext.getUserRrn(), LocalContext.getUserId(),
reKeyDataDTO.getOcapRrn(), dataCollectionList, parameters);
}
@Override
protected void setActionUrl(HttpServletRequest request) {
request.setAttribute(ACTION_URL_KEY, "ocapStepReKeyData.do");
}
@Override
void specialHandling(HttpServletRequest request) {
String jobId = WebUtils.getParameter("jobId", request);
String lotId = WebUtils.getParameter("lotId", request);
String ocapId = WebUtils.getParameter("ocapId", request);
String unitList = StringUtils.EMPTY;
unitList = edcChartService.queryOfflineUnitList(jobId, lotId, ocapId);
request.setAttribute("offlineFlag", this.actionType.toString());
request.setAttribute("unitList", unitList);
request.setAttribute("lotId", lotId);
}
}