DoChecklistItemAction.java
package com.mycim.webapp.actions.checklist;
import com.mycim.framework.utils.lang.BooleanUtils;
import com.mycim.valueobject.ems.ChecklistJob;
import com.mycim.valueobject.ems.ChecklistJobData;
import com.mycim.valueobject.prp.BORResource;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.EmsSetupAction;
import com.mycim.webapp.forms.DoChecklistInfoForm;
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.List;
/**
* 运行检查单项 定义
*
* @author pinyan.song
* @version 6.0.0
* @date 2019-12-3 10:44
**/
public class DoChecklistItemAction extends EmsSetupAction {
@Override
public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
return mapping.getInputForward();
}
public ActionForward next(ActionMapping mapping, DoChecklistInfoForm theform, HttpServletRequest request,
HttpServletResponse response) {
ChecklistJob checklistJob = getChecklistJob(theform);
ChecklistJobData instance = getChecklistItemAndSetSequence(checklistJob, request);
List<BORResource> borResources = getBorResources(instance);
long consumedRrn = this.inCreaseBorResource(borResources, checklistJob.getChecklistJobRrn(), request);
instance.setConsumedTransRrn(consumedRrn);
int colNum = instance.getColNum();
String dataValue = "";
if (colNum > 1) {
String[] colContexts = request.getParameterValues("dataValue");
dataValue = colContexts[0];
for (int i = 1; i < colNum; i++) {
dataValue = dataValue + "," + colContexts[i];
}
instance.setDataValue(dataValue);
theform.setDataValue(dataValue);
} else if (theform.getDataValue() != null) {
instance.setDataValue(theform.getDataValue());
} else {
instance.setDataValue(request.getParameter("dataValue"));
theform.setDataValue(request.getParameter("dataValue"));
}
instance.setComments(theform.getComments());
theform.setStartEventId(checklistJob.getStartEventId());
theform.setEndEventId(checklistJob.getEndEventId());
this.doChecklistItem(instance);
return handleCompletedFlag(mapping, checklistJob, instance, request);
}
private ActionForward handleCompletedFlag(ActionMapping mapping, ChecklistJob checklistJob,
ChecklistJobData instance, HttpServletRequest request) {
String dest = "";
if (instance.getParameterSetRrn() != null && instance.getParameterSetRrn() > 0) {
// todo 目前逻辑中, parameterSetRrn 永远为null或者0
request.setAttribute("parameterSetRrn", instance.getParameterSetRrn());
dest = "dochecklistitemdcol";
} else {
instance.setCompletedFlag("1");
this.doChecklistItem(instance);
dest = "next";
if (checklistJob.getChecklistJobDatas().size() < WebUtils.getParameterInt(NEXT_SEQ, request)) {
dest = "modify";
} else {
List<ChecklistJobData> checkJobs = (List<ChecklistJobData>) checklistJob.getChecklistJobDatas();
ChecklistJobData c = checkJobs.get(WebUtils.getParameterInt(NEXT_SEQ, request) - 1);
if (BooleanUtils.toBoolean(Integer.parseInt(c.getCompletedFlag()))) {
dest = "modify";
}
}
}
checklistJob.setChecklistJobDatas(emsService.getChecklistJobDatas(checklistJob));
return mapping.findForward(dest);
}
}