自动化立体仓库 - WMS系统
zhang
2025-05-17 244f41d475c3d5fbc2cf7c006aeab7582e76fdce
src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java
@@ -2,10 +2,16 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.InventoryCheckOrder;
import com.zy.asrs.entity.InventoryCheckOrderDetl;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.param.OpenOrderPakinParam;
import com.zy.asrs.entity.param.OpenOrderPakoutParam;
import com.zy.asrs.service.InventoryCheckOrderDetlService;
import com.zy.asrs.service.InventoryCheckOrderService;
import com.zy.asrs.service.MatService;
import com.zy.asrs.service.OpenService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
@@ -42,7 +48,13 @@
    private NccCkPddWmsService nccCkPddWmsService;
    @Autowired
    private Inv nccCkPddWmsService;
    private InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
    @Autowired
    private InventoryCheckOrderService inventoryCheckOrderService;
    @Autowired
    private MatService matService;
    @Autowired
    private OpenService openService;
@@ -133,8 +145,8 @@
            long i = 1;
            List<NccCgCgdhdWms> wmsFlag = nccCgCgdhdWmsService.selectList(new EntityWrapper<NccCgCgdhdWms>().eq("vbillcode", string).ne("wms_flag", 1));
            for (NccCgCgdhdWms nccScZkmxbWms : wmsFlag) {
                log.info("NccScZkmxbWms数据:{}", JSONObject.toJSON(nccScZkmxbWms));
                if ( nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getHdr() == 0) {
                log.info("NccCgCgdhdWms数据:{}", JSONObject.toJSON(nccScZkmxbWms));
                if (nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getHdr() == 0) {
                    detlDto = new DetlDto();
                    detlDto.setMatnr(nccScZkmxbWms.getWlbm());
                    detlDto.setAnfme(nccScZkmxbWms.getYdzsl().doubleValue());
@@ -162,25 +174,33 @@
        List<String> strings = nccCkPddWmsService.selectPdd();
        for (String string : strings) {
            InventoryCheckOrder param = new InventoryCheckOrder();
            InventoryCheckOrderDetl checkOrderDetl;
            List<InventoryCheckOrderDetl> checkOrderDetls = new ArrayList<>();
            long i = 1;
            InventoryCheckOrderDetl checkOrderDetl = null;
            List<NccCkPddWms> wmsFlag = nccCkPddWmsService.selectList(new EntityWrapper<NccCkPddWms>().eq("vbillcode", string).ne("wms_flag", 1));
            for (NccCkPddWms nccScZkmxbWms : wmsFlag) {
                log.info("NccCkPddWms数据:{}", JSONObject.toJSON(nccScZkmxbWms));
                if (nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getHdr() == 0) {
                    Mat mat = matService.selectByMatnr(nccScZkmxbWms.getWlbm());
                    if (Cools.isEmpty(mat)) {
                        throw new CoolException(nccScZkmxbWms.getWlbm() + "编号商品检索失败,请先添加商品");
                    }
                    List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", nccScZkmxbWms.getVbillcode()).eq("matnr", mat.getMatnr()));
                    if (checkOrderDetls==null||checkOrderDetls.isEmpty()) {
                        throw new CoolException(nccScZkmxbWms.getWlbm() + "盘点单的");
                    }
                    checkOrderDetl = new InventoryCheckOrderDetl();
                    checkOrderDetl.setMatnr(nccScZkmxbWms.getWlbm());
                    checkOrderDetl.setMaktx(mat.getMatnr());
                    checkOrderDetl.setOrderNo(nccScZkmxbWms.getVbillcode());
                    checkOrderDetl.setAnfme(nccScZkmxbWms.getZmzsl().doubleValue());
                    checkOrderDetl.setBatch(nccScZkmxbWms.getVbatchcode());
                    checkOrderDetls.add(checkOrderDetl);
                    i++;
                    inventoryCheckOrderDetlService.insert(checkOrderDetl);
                }
                nccScZkmxbWms.setWmsFlag(1);
            }
            param.setOrderNo(string);
            param.setOrderDetails(orderDetails);
            openService.pakoutOrderCreate(param);
            param.setStatus("1");
            inventoryCheckOrderService.insert(param);
            nccCkPddWmsService.updateBatchById(wmsFlag);
        }
        return SUCCESS;