自动化立体仓库 - WMS系统
zyx
2024-07-10 2cd1fab84d88a16063d5036e77d690e9709f5d68
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -8,10 +8,13 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.MesOrderReportParam;
import com.zy.asrs.entity.param.MesPakinReportParam;
import com.zy.asrs.entity.param.MesPakoutReportParam;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.utils.HttpHandler;
import io.swagger.models.auth.In;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +29,13 @@
@Slf4j
@Service
public class AgvWrkMastHandler extends AbstractHandler<String> {
    //入库类型数组
    private static final int[] IN_TYPE_ARRAY = new int[1];
    //出库类型数组
    private static final int[] OUT_TYPE_ARRAY = new int[1];
    //移库类型数组
    private static final int[] MOVE_TYPE_ARRAY = new int[1];
    @Value("${agvBasDev.maxWorkNum}")
    private int maxWrokNum;
@@ -574,11 +584,55 @@
        return wrkMast;
    }
    private MesOrderReportParam generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
    private Object getReportParamByIoType(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
        if(Cools.isEmpty(agvWrkDetls)){
            return null;
        }
        //区分不同任务类型的上报方式
        if(Arrays.asList(IN_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
        }
        if(Arrays.asList(OUT_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
        }
        if(Arrays.asList(MOVE_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
            return generateMesParam(agvWrkMast,agvWrkDetls);
        }
        return null;
    }
    private void reportMesPakinOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
        for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
            MesPakinReportParam mesPakinReportParam = new MesPakinReportParam();
            mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo());
            mesPakinReportParam.setBizType("0");
            mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode(),agvWrkDetl.getMatnr(),agvWrkMast.getLocNo()));
            mesPakinReportParam.setNoQrCodeExecAmount(new MesPakinReportParam.NoQrCodeExecAmount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
            doHttpRequest(mesPakinReportParam,getMesTokenInfo(),"上报mes单据信息",url,orderReportPath,null,"127.0.0.1");
        }
    }
    private void reportMesPakoutOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
        for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
            MesPakoutReportParam mesPakoutReportParam = new MesPakoutReportParam();
            mesPakoutReportParam.setStorageCode(agvWrkMast.getLocNo());
            AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo());
            mesPakoutReportParam.setWareHouseCode(agvLocMast.getPltType().toString());
            mesPakoutReportParam.setMaterialCode(agvWrkDetl.getMatnr());
            mesPakoutReportParam.setBatchNos(Arrays.asList(agvWrkDetl.getBatch()));
            mesPakoutReportParam.setAmount(new MesPakoutReportParam.Amount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
            doHttpRequest(mesPakoutReportParam,getMesTokenInfo(),"上报mes单据信息",url,orderReportPath,null,"127.0.0.1");
        }
    }
    private MesOrderReportParam generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
        if(agvWrkMast.getIoType() == 53){
            String locNo = agvWrkMast.getLocNo();