ViewBarcodeAction.java

package com.mycim.webapp.actions.unit;

import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.lang.BooleanUtils;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.server.carrier.service.CarrierService;
import com.mycim.valueobject.MessageIdList;
import com.mycim.valueobject.consts.LotInfoConstants;
import com.mycim.valueobject.wip.Lot;
import com.mycim.valueobject.wip.Unit;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.WipSetupAction;
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.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

/**
 * @author sandy
 * @version 6.0.0
 * @date 2019/9/25
 **/
public class ViewBarcodeAction extends WipSetupAction {


    @Override
    public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                              HttpServletResponse response) throws Exception {
        Long facilityRrn = LocalContext.getFacilityRrn();

        if(StringUtils.isNotEmpty(WebUtils.getParameter("cstId",request)) //在前端处理了.这里直接给页面就行了
            || StringUtils.isNotEmpty(WebUtils.getParameter("podId",request))
        ){
            //业务预留,下面三个参数解除强关联报错
            request.setAttribute("lotInfo", new Lot());
            request.setAttribute("unitList", new ArrayList<>());
            request.setAttribute("qty1", 0);
            return mapping.findForward("unitlist");
        }

        String lotId = WebUtils.getParameterUpperCase("lotId", request);
        Lot lot = lotQueryService.getLot(lotId, facilityRrn);
        if (StringUtils.isNotEmpty(WebUtils.getParameter("cdwFlag",request))) {
            Assert.isTrue(LotInfoConstants.isCategoryC(lot.getCreateCategory()),
                          Errors.create().key(MessageIdList.CDW_INVALID_CATEGORY)
                                .content("Current lot category is not allowed!").build());
        }
        //todo
            /*LotRunCardStore runcardStore = getLotManager().getSplitRunCardLotStore(lot.getLotRrn());
            if (runcardStore != null) {
                if (StringUtils.equalsIgnoreCase(SplitRunCardConstants.STATUS_BANK_OUT, runcardStore
                .getSubStatus())) {
                    unitList = getUnitManager().getRCStoreUnits(lot.getLotRrn());
                } else {
                    unitList = getUnitManager().getUnitList(lot.getLotRrn());
                    for (Unit unit : unitList) {
                        if (StringUtils.startsWith(unit.getUnitId(), "RC-")) {
                            unit.setUnitId(StringUtils.substring(unit.getUnitId(), 3));
                        }
                    }
                }
                Map<String,Object> lotInfoMap =  lotService.getRCLotInfoMap(lotId, facilityRrn);
                lot.setCarrierId(MapUtils.getString(lotInfoMap, "carrierId"));
                lot.setLotId(MapUtils.getString(lotInfoMap, "lotId"));
            } else {
                unitList = getUnitManager().getUnitList(lot.getLotRrn());
            }*/
        List<Unit> unitList = wipQueryService.getUnitList(lot.getLotRrn());
        lot.setLotId(StringUtils.replace(lot.getLotId(), ".MAINRC", ""));
        lot.setCarrierId(StringUtils.replace(lot.getCarrierId(), ".MAINRC", ""));
        request.setAttribute("lotInfo", lot);
        request.setAttribute("unitList", unitList);

        request.setAttribute("qty1", lot.getQty1() != null ? lot.getQty1().intValue() : 0);
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        String duedate = df.format(lot.getDueDate());
        request.setAttribute("duedate", duedate);

        return mapping.findForward("unitlist");
    }

    public ActionForward viewResistBarcode(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                           HttpServletResponse response) {
        String resistId = request.getParameter("resistId").toUpperCase().trim();
        request.setAttribute("resistId", resistId);
        return mapping.findForward("viewResistBarcode");
    }

    public ActionForward viewResistEqptBarcode(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                           HttpServletResponse response) {
        String resistEqptBarcode = request.getParameter("resistEqptBarcode").toUpperCase().trim();
        request.setAttribute("resistEqptBarcode", resistEqptBarcode);
        return mapping.findForward("viewResistEqptBarcode");
    }

}