ProcessSpecHistoryAction.java
package com.mycim.webapp.actions.spec;
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.valueobject.ObjectList;
import com.mycim.valueobject.prp.ProcessPlanning;
import com.mycim.valueobject.prp.ProcessVersion;
import com.mycim.webapp.actions.PrpSetupAction;
import com.mycim.webapp.forms.RecipeContextValueForm;
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.*;
/**
* @author Luopeng.Wang
* @version 6.0.0
* @date 2021/4/2
**/
public class ProcessSpecHistoryAction extends PrpSetupAction {
@Override
public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
return mapping.getInputForward();
}
public Page queryHistories(Map map) {
Integer limit = MapUtils.getInteger(map, "limit");
Integer pageNo = MapUtils.getInteger(map, "page");
String processId = MapUtils.getString(map, "processId");
Integer processVersion = MapUtils.getInteger(map, "processVersion");
String queryStartDateStr = MapUtils.getString(map, "queryStartDate");
String queryEndDateStr = MapUtils.getString(map, "queryEndDate");
Date queryStartDate = null;
Date queryEndDate = null;
if (StringUtils.isNotEmpty(queryStartDateStr)) {
queryEndDate = DateUtils.parse(queryStartDateStr, DateUtils.DATE_FORMAT4DATE);
}
if (StringUtils.isNotEmpty(queryEndDateStr)) {
queryEndDate = DateUtils.parse(queryEndDateStr, DateUtils.DATE_FORMAT4DATE);
}
Page page = new Page();
page.setPageSize(limit);
page.setPageNo(pageNo);
return processSpecService
.queryProcessSpecItemHistories(page, processId, processVersion, queryStartDate, queryEndDate);
}
public List<Map> queryProcessVersions(RecipeContextValueForm theform) {
Long facilityRrn = LocalContext.getFacilityRrn();
String processId = StringUtils.trim(theform.getProcessId());
return getProcessVersionMapByProcessId(facilityRrn, processId);
}
private List<Map> getProcessVersionMapByProcessId(Long facilityRrn, String processId) {
List<Map> rebuildProcessVersions = new ArrayList<>();
long processRrn = this.getInstanceRrn(processId, facilityRrn, ObjectList.WFL_KEY);
if (processRrn <= 0L) {
return rebuildProcessVersions;
}
ProcessPlanning processPlanning = new ProcessPlanning();
processPlanning.setInstanceRrn(processRrn);
Collection processVersions = prpService.getProcessVersions(processPlanning);
for (Iterator iterator = processVersions.iterator(); iterator.hasNext(); ) {
Map newMap = new HashMap<>();
ProcessVersion processVersion = (ProcessVersion) iterator.next();
int version = processVersion.getInstanceVersion();
String versionDesc = version + " (" + processVersion.getVersionStatus() + ")";
newMap.put("key", version);
newMap.put("value", versionDesc);
rebuildProcessVersions.add(newMap);
}
return rebuildProcessVersions;
}
}