LotLocation4ExtAction.java
/**
* @ Copyright 2001 FA Software; All right reserved. No part of this program may be reproduced or transmitted
* in any form or by any means, electronic or mechanical, including photocopying, recording, or by any
* information storage or retrieval system without written permission from FA Software, except for inclusion
* of brief quotations in a review.
*/
package com.mycim.webapp.actions.operation;
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.valueobject.MessageIdList;
import com.mycim.valueobject.bas.ErrorMsg;
import com.mycim.valueobject.bas.Relation;
import com.mycim.valueobject.consts.EventName;
import com.mycim.valueobject.ems.EntityStatus;
import com.mycim.valueobject.ems.Equipment;
import com.mycim.valueobject.inv.Order;
import com.mycim.valueobject.wip.Lot;
import com.mycim.webapp.actions.WipSetupAction;
import com.mycim.webapp.forms.lot.LotInfoForm;
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.*;
/**
* LotLocation4ExtAction
*
* @author kang.zhang
*/
public class LotLocation4ExtAction extends WipSetupAction {
@Override
public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
return null;
}
public Map lotLocation4Ext(ActionMapping mapping, LotInfoForm theform, HttpServletRequest request,
HttpServletResponse response) throws Exception {
Map map = new HashMap();
String lotId = theform.getLotId();
Map lotInfo = null;
List jsonArray = new ArrayList<>();
Map jsonObject = null;
if (lotId != null && !lotId.trim().equals("")) {
lotInfo = isValidLot(LocalContext.getFacilityRrn(), lotId.trim().toUpperCase());
}
Assert.isFalse(lotInfo == null,
Errors.create().key(MessageIdList.SHIPLOT_LOT_NOT_EXISTS).content("This lot does not exist!")
.build());
map.put("lotRrn", MapUtils.getLongValue(lotInfo, "lotRrn"));
request.setAttribute("map", map);
request.setAttribute("lotInfo", lotInfo);
Map lotordmap = new HashMap();
//TODO
// lotordmap =
// this.getBaseManager().getLotPreOrderInfo(lotInfo.get("lotRrn").toString());
if (!lotordmap.isEmpty()) {
request.setAttribute("market_order_id", MapUtils.getString(lotordmap, "market_order_id"));
request.setAttribute("order_type", MapUtils.getString(lotordmap, "order_type"));
request.setAttribute("order_id", MapUtils.getString(lotordmap, "order_id"));
// ***************Add by Holly 2008/07/01
Order ord = new Order();
/*ord = this.getBaseManager().getOrder((String) lotordmap.get("order_id"),
"LOTLOCATION");*/
String custduedate = (ord.getCust_due_date());
custduedate = custduedate + " 00:00:00.0";
String custId = (ord.getCust_Id());
request.setAttribute("lotpurpose", ord.getLot_purpose().toString());
request.setAttribute("custduedate", custduedate);
request.setAttribute("custid", custId);
} else {
request.setAttribute("market_order_id", "");
request.setAttribute("order_type", "");
request.setAttribute("order_id", "");
request.setAttribute("custduedate", "");
request.setAttribute("lotpurpose", "");
request.setAttribute("custid", "");
}
String lotstatus = MapUtils.getString(lotInfo, "lot_status");
if (StringUtils.equalsIgnoreCase(lotstatus, "WAITING") || StringUtils.equalsIgnoreCase(lotstatus, "RUNNING") ||
StringUtils.equalsIgnoreCase(lotstatus, "DISPATCH") ||
StringUtils.equalsIgnoreCase(lotstatus, "PROCESSED")) {
String eqpt = MapUtils.getString(lotInfo, "equipmentId");
if (StringUtils.isEmpty(eqpt) || StringUtils.equalsIgnoreCase(lotstatus, "WAITING")) {
Lot lotQuery = lotQueryService.getLot(MapUtils.getLongValue(lotInfo, "lotRrn"));
Collection entitys = this.getEntitiesWithLotSpecial(lotQuery);
for (Iterator it = entitys.iterator(); it.hasNext(); ) {
Relation en = (Relation) it.next();
Collection entityStatus = emsService.getEntityStatuss(en.getInstanceRrn());
Iterator itt = entityStatus.iterator();
String entity_Status = "";
while (itt.hasNext()) {
EntityStatus instance = (EntityStatus) itt.next();
entity_Status = instance.getCurrentStatus();
}
if (StringUtils.equalsIgnoreCase(entity_Status, EventName.RUN) ||
StringUtils.equalsIgnoreCase(entity_Status, EventName.SRUN) ||
StringUtils.equalsIgnoreCase(entity_Status, EventName.ERUN) ||
StringUtils.equalsIgnoreCase(entity_Status, EventName.REWORK) ||
StringUtils.equalsIgnoreCase(entity_Status, EventName.IDLE) ||
StringUtils.equalsIgnoreCase(entity_Status, EventName.ENG)) {
jsonObject = new HashMap();
jsonObject.put("equipRrn", String.valueOf(en.getInstanceRrn()));
jsonObject.put("equipId", en.getInstanceId());
jsonObject.put("equipDesc", en.getInstanceDesc());
jsonObject.put("pollutionLevel", StringUtils.isEmpty(en.getAttributedata1()) ? "" : en
.getAttributedata1());// 污染等级
jsonObject.put("entityGroupRrn", en.getAttributedata2());// 设备分组
// start: 检查批次在当前设备是否有constrain
String constrainFlag = "NO";
if (en.getInstanceRrn() > 0) {
Equipment equipment = new Equipment();
equipment.setInstanceRrn(en.getInstanceRrn());
long tLotRrn = MapUtils.getLongValue(map, "lotRrn");
Lot sLot = new Lot();
sLot.setLotRrn(tLotRrn);
sLot = lotQueryService.getLot(tLotRrn);
ErrorMsg errorMsg = constrainService.checkLotConstrain(equipment, sLot);
if (errorMsg.getError()) {
constrainFlag = "YES";
}
}
jsonObject.put("constrainFlag", constrainFlag);
// end: 检查批次在当前设备是否有constrain
jsonArray.add(jsonObject);
}
}
}
}
Map result = new HashMap();
result.put("results", jsonArray.size());
result.put("rows", jsonArray);
return result;
} // end of perform()
private Map isValidLot(Long facility, String id) throws Exception {
return lotQueryService.getLotInfoasMap(facility.longValue(), id);
}
}