自动化立体仓库 - WMS系统
whycq
2024-11-25 bcb19e8c93c3cabf0d8eb3ee34ed819b3c5a10ef
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.R;
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
@@ -51,9 +52,17 @@
    private AgvBasDevpService agvBasDevpService;
    @Autowired
    private AgvWorkService agvWorkService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private FlowLogService flowLogService;
    @Transactional
    public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
        long flowId = snowflakeIdWorker.nextId();
        Date now = new Date();
        try{
            int wrkNo = agvWrkMast.getWrkNo();
            String barcode = agvWrkMast.getBarcode();
@@ -78,11 +87,6 @@
                agvWrkMastLogService.save(agvWrkMast);
                //生成AGV工作明细历史档
                agvWrkDetlLogService.save(wrkNo);
            } else {
                if (!agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
                    agvWrkMast.setSourceLocNo("");
                }
                agvWrkMastService.updateById(agvWrkMast);
            }
            switch (agvWrkMast.getIoType()){
@@ -117,6 +121,34 @@
                        AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
                        if (!Cools.isEmpty(agvLocDetl)) {
                            double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
//                            OrderDetl orderDetl = orderDetlService.selectItem(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode());
//                            FlowLog flowLog = new FlowLog();
//                            flowLog.setFid(String.valueOf(flowId));
//                            flowLog.setSpare2(String.valueOf(agvWrkMast.getWrkNo()));
//                            flowLog.setLocNo(agvWrkMast.getLocNo());
//                            flowLog.setSpare1(agvWrkDetl.getSuppCode());
//                            flowLog.setOpType(53L);
//                            flowLog.setOrderNo(agvWrkDetl.getOrderNo());
//                            flowLog.setThreeCode(agvWrkDetl.getThreeCode());
//                            flowLog.setMatnr(agvWrkDetl.getMatnr());
//                            flowLog.setMaktx(agvWrkDetl.getMaktx());
//
//                            flowLog.setOrderPrevious(orderDetl.getAnfme());
//                            flowLog.setOrderCurrent(orderDetl.getAnfme());
//                            flowLog.setOrderChanged(0.0);
//
//                            flowLog.setQtyPrevious(orderDetl.getQty());
//                            flowLog.setQtyCurrent(updateAnfme);
//                            flowLog.setQtyChanged(agvWrkDetl.getAnfme());
//
//                            flowLog.setLocPrevious(agvLocDetl.getAnfme());
//                            flowLog.setLocCurrent(updateAnfme);
//                            flowLog.setLocChanged(agvWrkDetl.getAnfme());
//
//                            flowLog.setAppeTime(now);
//                            if (!flowLogService.insert(flowLog)) {
//                                throw new CoolException("同步半成品调拨单流水记录失败");
//                            }
                            agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
                        }
                        //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
@@ -126,7 +158,6 @@
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                    break;
                case 57:
                    Date now = new Date();
                    // 更新库存明细
                    List<AgvWrkDetl> wrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
                    wrkDetlList.forEach(agvWrkDetl -> {
@@ -235,6 +266,13 @@
                //删除AGV工作明细档
                agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
            }
//            else {
//                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
//                if (!agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
//                    agvWrkMast.setSourceLocNo("");
//                }
//                agvWrkMastService.updateById(agvWrkMast);
//            }
            if(!isJSON(orderNo)){
                //检查订单是否已完成