ProductVersionAction.java
package com.mycim.webapp.actions.product;
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.CollectionUtils;
import com.mycim.valueobject.MessageIdList;
import com.mycim.valueobject.ObjectList;
import com.mycim.valueobject.bas.NamedObject;
import com.mycim.valueobject.prp.ProductVersion;
import com.mycim.webapp.Constants;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.PrpSetupAction;
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.List;
import java.util.Map;
public class ProductVersionAction extends PrpSetupAction {
@Override
public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
return mapping.findForward(Constants.INIT_KEY);
}
public ActionForward productVersion(ActionMapping mapping, HttpServletRequest request) {
Long facilityRrn = LocalContext.getFacilityRrn();
String productId = WebUtils.getParameterUpperCase("productId", request);
productId = StringUtils.isBlank(productId) ? WebUtils.getParameterUpperCase("instanceId", request) : productId;
long productRrn = baseService
.getNamedObjectRrn(productId, baseService.getNamedSpace(facilityRrn, ObjectList.PRODUCT_KEY),
ObjectList.PRODUCT_KEY);
Assert.isTrue(productRrn > 0, Errors.create().key(MessageIdList.PRODUCT_VALID_ID).content("未找到该产品").build());
List<ProductVersion> versions = productService.getProductVersions(productRrn);
if (CollectionUtils.isNotEmpty(versions)) {
ProductVersion prodVerion = versions.iterator().next();
NamedObject object = baseService.getNamedObject(productRrn);
request.setAttribute("product", object);
request.setAttribute("productId", productId);
request.setAttribute("versionId", prodVerion.getVersionId());
request.setAttribute("versionStatus", prodVerion.getVersionStatus());
request.setAttribute("currentVersion", prodVerion.getInstanceVersion());
request.setAttribute("initaction", "/productsave.do");
return mapping.findForward("versionInfo");
} else {
request.setAttribute("productVersions", new ArrayList<ProductVersion>());
request.setAttribute("productId", productId);
request.setAttribute("currentVersion", 0);
request.setAttribute("versionStatus", StringUtils.EMPTY);
request.setAttribute("initaction", "/productsave.do");
return mapping.findForward("allVersion");
}
}
public ActionForward allProdVersion(ActionMapping mapping, HttpServletRequest request) {
Long facilityRrn = LocalContext.getFacilityRrn();
String productId = WebUtils.getParameterUpperCase("productId", request);
Integer currentVersion = WebUtils.getParameterInt("currentVersion", request);
ProductVersion prodVersion = productService.getProductVersion(productId, currentVersion);
List<ProductVersion> versions = productService.getProductVersions(productId);
request.setAttribute("productId", productId);
request.setAttribute("versionId", prodVersion.getVersionId());
request.setAttribute("versionStatus", prodVersion.getVersionStatus());
request.setAttribute("currentVersion", prodVersion.getInstanceVersion());
request.setAttribute("productVersions", versions);
request.setAttribute("initaction", "/productVersion.do");
return mapping.findForward("allVersion");
}
public ActionForward prodVersionInfo(ActionMapping mapping, HttpServletRequest request) {
Long facilityRrn = LocalContext.getFacilityRrn();
String productId = WebUtils.getParameterUpperCase("productId", request);
Integer currentVersion = WebUtils.getParameterInt("currentVersion", request);
ProductVersion prodVerion;
if (currentVersion != null && currentVersion > 0) {
prodVerion = productService.getProductVersion(productId, currentVersion);
} else {
List<ProductVersion> versions = productService.getProductVersions(productId);
prodVerion = versions.iterator().next();
}
NamedObject object = baseService.getNamedObject(baseService.getNamedObjectRrn(productId, baseService
.getNamedSpace(facilityRrn, ObjectList.PRODUCT_KEY), ObjectList.PRODUCT_KEY));
request.setAttribute("product", object);
request.setAttribute("prodVerion", prodVerion);
request.setAttribute("productId", productId);
request.setAttribute("versionId", prodVerion.getVersionId());
request.setAttribute("versionStatus", prodVerion.getVersionStatus());
request.setAttribute("currentVersion", prodVerion.getInstanceVersion());
request.setAttribute("initaction", "/productsave.do");
return mapping.findForward("versionInfo");
}
public ActionForward prodVersionHist(ActionMapping mapping, HttpServletRequest request) {
Long facilityRrn = LocalContext.getFacilityRrn();
String productId = WebUtils.getParameterUpperCase("productId", request);
Integer targetVersion = WebUtils.getParameterInt("targetVersion", request);
ProductVersion prodVersion = productService.getProductVersion(productId, targetVersion);
List<Map<String, String>> prodVerHist = productService.getProductVersionHist(productId, targetVersion);
NamedObject prod = baseService.getNamedObject(baseService.getNamedObjectRrn(productId, baseService
.getNamedSpace(facilityRrn, ObjectList.PRODUCT_KEY), ObjectList.PRODUCT_KEY));
prodVersion.setEcnId(baseService.getNamedObjectId(prodVersion.getEcnRrn()));
request.setAttribute("product", prod);
request.setAttribute("prodVersion", prodVersion);
request.setAttribute("productId", productId);
request.setAttribute("versionId", prodVersion.getVersionId());
request.setAttribute("versionStatus", prodVersion.getVersionStatus());
request.setAttribute("currentVersion", prodVersion.getInstanceVersion());
request.setAttribute("historys", prodVerHist);
return mapping.findForward("versionHist");
}
}