SplitRuncardJobManagementGetEquipmentAction.java
package com.mycim.webapp.actions.splitruncardlot;
import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.valueobject.MessageIdList;
import com.mycim.valueobject.ObjectList;
import com.mycim.valueobject.bas.ErrorMsg;
import com.mycim.valueobject.consts.SessionNames;
import com.mycim.valueobject.ems.Equipment;
import com.mycim.valueobject.wip.Lot;
import com.mycim.webapp.actions.RunCardAction;
import com.mycim.webapp.forms.EntityAttrEqptForm;
import com.mycim.webapp.forms.JobOfEquipmentInfoForm;
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;
import java.util.Map;
public class SplitRuncardJobManagementGetEquipmentAction extends RunCardAction {
public ActionForward jobManagementDispatch(ActionMapping mapping, JobOfEquipmentInfoForm form,
HttpServletRequest request, HttpServletResponse response) {
long facilityRrn = LocalContext.getFacilityRrn();
request.setAttribute("jobservice_flag", "true");
String eqptId = request.getParameter("eqptId");
String lotId = request.getParameter("lotId");
Lot lotTemp = lotQueryService.getLot(lotId, facilityRrn);
Equipment equipment = new Equipment(eqptId, getNamedSpace(ObjectList.ENTITY_KEY, facilityRrn),
ObjectList.ENTITY_KEY);
equipment = emsService.getEquipment(equipment);
// such equipment exist?
Assert.isFalse(equipment.getInstanceRrn() == 0,
Errors.create().key(MessageIdList.SYSTEM_INSTANCE_NOT_FOUND).content("未查询到{}对象")
.args("Equipment").build());
//TODO 检验设备操作权限
request.setAttribute(SessionNames.ENTITY_KEY, equipment);
EntityAttrEqptForm entityAttrEqptForm = new EntityAttrEqptForm();
//PropertyUtils.copyProperties(entityAttrEqptForm, equipment);
entityAttrEqptForm.setInstanceDesc(equipment.getInstanceDesc());
// ------------操作工设备认证--------------
wipCheckService.checkEquipmentCertification(LocalContext.getUserId(), equipment.getInstanceRrn());
ErrorMsg errorMsg = constrainService.checkLotConstrain(equipment, lotTemp);
boolean overrideConstrain = wipCheckService.isOverrideConstrain(lotTemp);
if (overrideConstrain) {
errorMsg.setError(false);
errorMsg.setErrorMsg("OK");
}
if (overrideConstrain) {
errorMsg.setError(false);
errorMsg.setErrorMsg("OK");
}
Assert.isFalse(errorMsg.getError(), Errors.create().content(errorMsg.getErrorMsg()).build());
// get Current Status of Equipment
entityAttrEqptForm.setCurrentStatus(emsService.getEntityCurrentStatus(equipment.getInstanceRrn()));
request.setAttribute(SessionNames.EQUIPMELNT_INFO_FORM_KEY, entityAttrEqptForm);
if (lotTemp.getJobRrn().longValue() > 0) {
List<Map> jobList = wipQueryService.getJobList(lotTemp.getJobRrn(), ObjectList.JOB_KEY);
int i = 1;
String _JobNumber = null;
for (Map _job : jobList) {
_job.put("isUniqueJobFlag", "1");
if (i == 1) {
_JobNumber = (String) _job.get("jobRrn");
} else {
if (((String) _job.get("jobRrn")).equals(_JobNumber)) {
_job.put("isUniqueJobFlag", "0");
} else {
_JobNumber = (String) _job.get("jobRrn");
}
}
i++;
String hotflagSplicingPriority = wipQueryService
.getHotflagSplicingPriority(MapUtils.getInteger(_job, "hotFlag"),
MapUtils.getInteger(_job, "priority"), facilityRrn);
_job.put("priority", hotflagSplicingPriority);
}
replaceJobListRecipeId(jobList);
request.setAttribute(SessionNames.COLLECTION_KEY, jobList);
Map job = (Map) jobList.iterator().next();
request.setAttribute("cur_job", job);
request.setAttribute("type", "equipment");
request.setAttribute("runcardFlag", "1");
String runcardLotId = request.getParameter("runcardLotId");
request.setAttribute("runcardLotId", runcardLotId);
Lot runcardLot = lotQueryService.getLot(runcardLotId, facilityRrn);
if (runcardLot != null) {
request.setAttribute("runcardLot", runcardLot);
}
return mapping.findForward("moveout");
}
return new ActionForward(mapping.getInput());
}
private void replaceJobListRecipeId(List<Map> jobList) {
for (Map map : jobList) {
map.put("eqptID", MapUtils.getString(map, "equipmentId"));
map.put("facilityRrn", LocalContext.getFacilityRrn());
long lotRrn = MapUtils.getLongValue(map, "lotRrn");
Lot lot = lotQueryService.getLot(lotRrn);
map.put("recipePhysicalId", lot.getRecipePhysicalId());
map.put("recipeId", lot.getRecipeId());
map.put("recipeRrn", baseService.getNamedObjectRrn(lot.getRecipeId(), baseService
.getNamedSpace(LocalContext.getFacilityRrn(), ObjectList.RECIPE_KEY), ObjectList.RECIPE_KEY));
}
}
}
/*
* Modification Log Log No : Name : Modified Date: Description :
*/