NpwLotWaferUsageAction.java
package com.mycim.webapp.actions.npwlotwaferusage;
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.lang.math.NumberUtils;
import com.mycim.valueobject.MessageIdList;
import com.mycim.valueobject.wip.Unit;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.NpwSetupAction;
import com.mycim.webapp.forms.LotInfoFormNpw;
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.HashMap;
import java.util.List;
import java.util.Map;
public class NpwLotWaferUsageAction extends NpwSetupAction {
@Override
public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
LotInfoFormNpw theform = (LotInfoFormNpw) form;
return mapping.findForward("modify");
}
public Map batchUpdateWafer(HttpServletRequest request, Map map) {
String user = LocalContext.getUserId();
Long facilityRrn = LocalContext.getFacilityRrn();
Assert.isTrue(NumberUtils.isNumber(MapUtils.getString(map, "count").trim()),
Errors.create().key(MessageIdList.NPWLOTWAFERUSAGE_ENTER_NON_INTEGER).content("输入非整数!").build());
Integer count = NumberUtils.toInt(MapUtils.getString(map, "count").trim());
String[] unitsRrnStr = StringUtils.split(MapUtils.getString(map, "rrns"), ",");
String[] unitId = StringUtils.split(MapUtils.getString(map, "unitIds"), ",");
String type = "";
for (int i = 0; i < unitsRrnStr.length; i++) {
Long unitRrn = NumberUtils.toLong(unitsRrnStr[i]);
Unit unit = wipQueryService.getUnit(facilityRrn, unitId[i]);
Map transInfo = new HashMap();
transInfo.put("unitRrn", unitRrn);
transInfo.put("unit", unit);
transInfo.put("user", user);
if (StringUtils.isNotBlank(WebUtils.getParameter("loopCount", request))) {
transInfo.put("loopCount", count);
dmmLotService.updateUnitUsage(transInfo);
type = "loopCount";
} else {
transInfo.put("sumLoopCount", count);
dmmLotService.updateUnitSumLoopCount(transInfo);
type = "sumCount";
}
}
Map json = new HashMap();
json.put("success", 1);
json.put("modifyType", type);
json.put("results", count);
return json;
}
public Map queryByCondition(ActionMapping mapping, LotInfoFormNpw theform, HttpServletRequest request,
HttpServletResponse response) {
String carrierId = request.getParameter("carrierId");
String productId = request.getParameter("productId");
List<Unit> list = dmmLotService.getUnitList(carrierId, productId);
Map json = new HashMap();
json.put("success", 1);
json.put("results", list);
return json;
}
public Map updateUsageCount(ActionMapping mapping, LotInfoFormNpw theform, HttpServletRequest request,
HttpServletResponse response) {
String user = LocalContext.getUserId();
Long facilityRrn = LocalContext.getFacilityRrn();
// Integer usageCount = Integer.parseInt(request.getParameter("usageCount"));
Assert.isFalse(StringUtils.isBlank(WebUtils.getParameter("usageCount", request)) &&
StringUtils.isBlank(WebUtils.getParameter("limitCount", request)),
Errors.create().key(MessageIdList.NPWLOTWAFERUSAGE_NO_AVAILABLE_PARAMETER).content("没有可用参数!")
.build());
String unitRrn = request.getParameter("unitRrn");
String unitId = request.getParameter("unitId");
Integer limitCount = -1;
Integer usageCount = -1;
Assert.isFalse(StringUtils.isBlank(unitRrn),
Errors.create().key(MessageIdList.NPWLOTWAFERUSAGE_NO_AVAILABLE_PARAMETER).content("没有可用参数!")
.build());
Unit unit = wipQueryService.getUnit(facilityRrn, unitId);
/*
* if (usageCount < 0 || usageCount > unit.getUsageLimit()) { throw new
* UnitDAOSysException("Error in parameter, no available value."); }
*/
Map transInfo = new HashMap();
transInfo.put("unitRrn", unitRrn);
transInfo.put("unit", unit);
transInfo.put("user", user);
if (StringUtils.isNotBlank(WebUtils.getParameter("usageCount", request))) {
Assert.isTrue(NumberUtils.isNumber(WebUtils.getParameter("usageCount", request).trim()),
Errors.create().key(MessageIdList.NPWLOTWAFERUSAGE_ENTER_NON_INTEGER).content("输入非整数!")
.build());
usageCount = NumberUtils.toInt(WebUtils.getParameter("usageCount", request).trim());
transInfo.put("loopCount", usageCount);
dmmLotService.updateUnitUsage(transInfo);
}
if (StringUtils.isNotBlank(WebUtils.getParameter("limitCount", request))) {
Assert.isTrue(NumberUtils.isNumber(WebUtils.getParameter("limitCount", request).trim()),
Errors.create().key(MessageIdList.NPWLOTWAFERUSAGE_ENTER_NON_INTEGER).content("输入非整数!")
.build());
limitCount = NumberUtils.toInt(WebUtils.getParameter("limitCount", request).trim());
transInfo.put("sumLoopCount", limitCount);
dmmLotService.updateUnitSumLoopCount(transInfo);
}
Map json = new HashMap();
json.put("success", 1);
json.put("limitCount", limitCount);
json.put("usageCount", usageCount);
return json;
}
}