OutFactoryAction.java
package com.mycim.webapp.actions.outfactory.outfactoryInfo;
import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.beans.PropertyUtils;
import com.mycim.framework.utils.lang.collections.CollectionUtils;
import com.mycim.valueobject.MessageIdList;
import com.mycim.valueobject.ObjectList;
import com.mycim.valueobject.consts.TransactionNames;
import com.mycim.valueobject.ems.Entity;
import com.mycim.valueobject.wip.OutFactory;
import com.mycim.webapp.actions.WipSetupAction;
import com.mycim.webapp.forms.outfactory.OutFactoryForm;
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;
/**
* @author liuji.li
* @version 6.0.0
* @date 2019/10/22
**/
public class OutFactoryAction extends WipSetupAction {
@Override
public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
return initOutFactory(mapping, form, request, response);
}
public ActionForward initOutFactory(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
OutFactoryForm outFactoryForm = (OutFactoryForm) form;
OutFactoryForm off = (OutFactoryForm) request.getAttribute("off");
PropertyUtils.copyProperties(outFactoryForm, off);
return mapping.getInputForward();
}
public ActionForward createOrModify(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
long facilityRrn = LocalContext.getFacilityRrn();
String user = LocalContext.getUserId();
OutFactoryForm theForm = (OutFactoryForm) form;
request.removeAttribute("operationSuccess");
theForm.setOutFactoryId(theForm.getOutFactoryId().trim().toUpperCase());
String outFactoryId = theForm.getOutFactoryId();
Long outFactoryRrn = theForm.getOutFactoryRrn();
if (outFactoryRrn == 0 || outFactoryRrn == null) {
OutFactory outFactoryInfo = wipService.getOutFactoryById(outFactoryId);
if (outFactoryInfo != null) {
outFactoryRrn = outFactoryInfo.getOutFactoryRrn();
}
}
Map<String, Object> outFactorInfo = new HashMap();
Entity entity = new Entity(outFactoryId, getNamedSpace(ObjectList.OUT_FACTORY, facilityRrn),
ObjectList.OUT_FACTORY);
OutFactory outFactory = new OutFactory();
PropertyUtils.copyProperties(outFactory, theForm);
outFactory.setInstanceId(theForm.getOutFactoryId());
outFactory.setInstanceDesc(theForm.getComments());
outFactory.setNamedSpace(entity.getNamedSpace());
outFactory.setObject(ObjectList.OUT_FACTORY);
outFactorInfo.put("performedby", user);
if (outFactoryRrn == 0 || outFactoryRrn == null) {
// 新增
outFactorInfo.put("transId", TransactionNames.CREATE_KEY);
outFactorInfo.put("outFactory", outFactory);
outFactory = wipService.insertOutFactory(outFactorInfo);
} else {
// 修改
outFactory.setInstanceRrn(theForm.getOutFactoryRrn());
outFactorInfo.put("transId", "MODIFY");
outFactorInfo.put("outFactory", outFactory);
outFactory = wipService.updateOutFactory(outFactorInfo);
}
PropertyUtils.copyProperties(theForm, outFactorInfo);
theForm.setOperationType(TransactionNames.MODIFY_KEY);
request.setAttribute("operationSuccess", true);
return mapping.getInputForward();
}
public ActionForward deleteOutFactory(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
long facilityRrn = LocalContext.getFacilityRrn();
String user = LocalContext.getUserId();
request.removeAttribute("operationSuccess");
OutFactoryForm off = (OutFactoryForm) form;
off.setOutFactoryId(off.getOutFactoryId().trim().toUpperCase());
String outFactoryId = off.getOutFactoryId();
Long outFactoryRrn = off.getOutFactoryRrn();
if (outFactoryRrn == 0 || outFactoryRrn == null) {
OutFactory outFactoryInfo = wipService.getOutFactoryById(outFactoryId);
if (outFactoryInfo != null) {
outFactoryRrn = outFactoryInfo.getOutFactoryRrn();
}
}
Map<String, Object> outFactorInfo = new HashMap();
outFactorInfo.put("performedby", user);
Entity entity = new Entity(outFactoryId, getNamedSpace(ObjectList.OUT_FACTORY, facilityRrn),
ObjectList.OUT_FACTORY);
OutFactory outFactoryDel = wipService.getOutFactoryByRrn(outFactoryRrn);
outFactorInfo.put("transId", TransactionNames.DELETE_KEY);
outFactorInfo.put("outFactory", outFactoryDel);
List<Map> lotRrnMap = wipService.getFsendLotRrnsByOutFactoryRrn(outFactoryRrn);
Assert.isFalse(CollectionUtils.isNotEmpty(lotRrnMap), Errors.create().key(MessageIdList.OUTFACTORY_NOT_DELETE)
.content("The lot is being processed in this " +
"factory and is not allowed to " +
"be" +
" deleted!").build());
wipService.deleteOutFactory(outFactorInfo);
return mapping.findForward("initOutFactory");
}
}