OcapAction.java
package com.mycim.webapp.actions.ocap;
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.framework.utils.lang.time.DateUtils;
import com.mycim.framework.utils.msg.JsonUtils;
import com.mycim.valueobject.consts.VersionStatus;
import com.mycim.valueobject.ocap.OcapCard;
import com.mycim.valueobject.ocap.dto.OcapCardDTO;
import com.mycim.valueobject.ocap.dto.OcapChartInfoDTO;
import com.mycim.valueobject.ocap.dto.OcapQueryConditionDTO;
import com.mycim.webapp.TemplateLocation;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.OcapAbstractAction;
import org.apache.struts.action.ActionForward;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
/**
* @author songpy
* @version 1.0.0
* @date 2021/1/14
**/
public class OcapAction extends OcapAbstractAction {
/**
* Action方法
*/
public void doWithdraw(Long ocapRrn) {
Assert.isFalse(ocapRrn == null || ocapRrn <= 0,
Errors.create().content("The parameter is missing. Please login again.").build());
OcapCard ocap = wipQueryService.getOcapCardByPrimaryKey(ocapRrn);
Assert.isFalse(Objects.isNull(ocap), Errors.create().content("Can not find the OCAP!").build());
validOcapMainLot(ocap);
Assert.isTrue(StringUtils.equals(VersionStatus.ACTIVE_KEY, ocap.getStatus()),
Errors.create().content("This OCAP status is not Active!").build());
if (StringUtils.isEmpty(ocap.getOcapBatchId())) {
List<OcapCard> ocapCards = wipQueryService
.getOcapCardsByBatchId(LocalContext.getFacilityRrn(), ocap.getOcapBatchId());
for (OcapCard tmpOcap : ocapCards) {
Assert.isTrue(StringUtils.equals(VersionStatus.ACTIVE_KEY, tmpOcap.getStatus()),
Errors.create().content("Batch OCAP status is not Active!").build());
}
}
ocapService.doWithdraw(LocalContext.getFacilityRrn(), LocalContext.getUserRrn(), LocalContext.getUserId(),
ocapRrn);
}
/**
* Action方法
*/
public Page queryList(OcapQueryConditionDTO queryConditionDTO, Map<String, Object> params) {
queryConditionDTO.setFacilityRrn(LocalContext.getFacilityRrn());
queryConditionDTO.setUserRrn(LocalContext.getUserRrn());
//转换
queryConditionDTO.setWorkflowIds(WebUtils.covertExtSelect(MapUtils.getObject(params, "workflowId")));
queryConditionDTO.setStatuses(WebUtils.covertExtSelect(MapUtils.getObject(params, "status")));
queryConditionDTO.setAreaIds(WebUtils.covertExtSelect(MapUtils.getObject(params, "areaId")));
queryConditionDTO.setOcapId(MapUtils.getString(params, "ocapId"));
return wipQueryService.getOcapCardPage(queryConditionDTO);
}
/**
* Action方法
*/
public OcapCardDTO getOcapInfo(Long ocapRrn) {
return ocapService.getOcapInfo(LocalContext.getFacilityRrn(), LocalContext.getUserId(), ocapRrn);
}
/**
* Action方法
*/
public Map<String, Object> getSpcLink(Map<String, Object> params) {
String jobId = MapUtils.getString(params, "jobId");
String jobName = MapUtils.getString(params, "jobName");
long ocapRrn = MapUtils.getLongValue(params, "ocapRrn");
OcapChartInfoDTO dto = new OcapChartInfoDTO(ocapRrn, jobId, jobName, "");
List<OcapChartInfoDTO> items = wipQueryService.queryOcapChartInfoList(dto);
Map<String, Object> returnData = new HashMap<>();
returnData.put("items", items);
return returnData;
}
/**
* Action方法
*/
public ActionForward export(HttpServletRequest request, HttpServletResponse response) throws Exception {
String fileName = "OcapList_" + DateUtils.getNowTime(DateUtils.DATE_FORMAT4DAYD) + ".xlsx";
Map<String, Object> titles = WebUtils.getExportTitles(request);
List<Map<String, Object>> data = (List<Map<String, Object>>) WebUtils.getExportDatas(request);
titles.put("title", "OcapListInfo");
WebUtils.exportExcel(fileName, titles, data, TemplateLocation.OCAP_LIST_INFO, response);
return WebUtils.NULLActionForward;
}
@Override
protected void initSelectItem(HttpServletRequest request) {
String[] types = new String[]{"workAreaType"};
registerOptionType(LocalContext.getFacilityRrn(), Arrays.asList(types), request);
request.setAttribute("querySelectItems", JsonUtils.toString(ocapService.getQuerySelectItems()));
}
}