自动化立体仓库 - WMS系统
zhou zhou
19 小时以前 4e32eae9008b56a346f52710d86241890a0ae1a7
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
@@ -20,6 +21,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -49,6 +51,10 @@
    private TagService tagService;
    @Autowired
    private TagMapper tagMapper;
    @Autowired
    private CheckOrderDetlService checkOrderDetlService;
    @Autowired
    private CheckOrderService checkOrderService;
    @Override
    @Transactional
@@ -465,6 +471,7 @@
                tagId = tagService.getTop().getId();
            }
            mat.setTagId(tagId);
            mat.setLocType(tagId);
            mat.setMatnr(analyse.getMatnr());
            mat.setMaktx(param.getMaterialName());
            mat.setSpecs(param.getConfigureDesc());
@@ -571,6 +578,7 @@
//            mat.setModel(param.getModel());
                mat.setTagId(tagId);
                mat.setLocType(tagId);
                mat.setStatus(1);
                mat.setCreateTime(now);
                mat.setUpdateTime(now);
@@ -589,4 +597,63 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void adjustmentOrderCreate(OpenAdjustmentOrderParam param) {
        if(Cools.isEmpty(param.getOrderNo())){
            String prefix = "";
            DocType docType = docTypeService.selectById(param.getOrderNo());
            if(!Cools.isEmpty(docType)){
                prefix = "Adjust";
            }
            param.setOrderNo(prefix + snowflakeIdWorker.nextId());
        }
        CheckOrder checkOrder = checkOrderService.selectOne(new EntityWrapper<CheckOrder>().eq("order_no", param.getOrderNo()) );
        if (checkOrder != null) {
            throw new CoolException("单据已存在");
        }
        Date now = new Date();
        checkOrder = new CheckOrder();
        checkOrder.setOrderNo(param.getOrderNo());
        checkOrder.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
        checkOrder.setOrderTime( DateUtils.convert(now));
        checkOrder.setDocType(param.getOrderType());
        checkOrder.setSettle(1L);
        checkOrder.setCreateBy(9527L);
        checkOrder.setCreateTime(now);
        checkOrder.setUpdateBy(9527L);
        checkOrder.setUpdateTime(now);
        checkOrder.setStatus(1);
        if (!checkOrderService.insert(checkOrder)) {
            throw new CoolException("保存调整单主单失败");
        }
        for (CheckOrderDetl checkOrderDetl1 : param.getOrderDetails()) {
            LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>()
                    .eq("matnr", checkOrderDetl1.getMatnr())
                    .eq("loc_no", checkOrderDetl1.getLocNo())
                    .eq("batch", checkOrderDetl1.getBatch())
            );
            if (Cools.isEmpty(locDetl)) {
                throw new CoolException("未找到库存明细,请检查库存");
            }
            CheckOrderDetl checkOrderDetl = new CheckOrderDetl();
            checkOrderDetl.sync(locDetl);
            checkOrderDetl.setLocDetlId(locDetl.getId());
            checkOrderDetl.setOrderId(checkOrder.getId());
            checkOrderDetl.setOrderNo(checkOrder.getOrderNo());
            checkOrderDetl.setAnfme(checkOrderDetl1.getAnfme());
            checkOrderDetl.setDiffQty(checkOrderDetl1.getDiffQty());
            checkOrderDetl.setWorkQty(checkOrderDetl1.getWorkQty());
            checkOrderDetl.setStatus(4);
            checkOrderDetl.setZpallet(locDetl.getZpallet());
            checkOrderDetl.setCreateTime(now);
            checkOrderDetl.setUpdateTime(now);
            if (!checkOrderDetlService.insert(checkOrderDetl)) {
                throw new CoolException("保存调整单明细失败");
            }
        }
    }
}