#
Junjie
2024-01-11 901b2ab3e0e7c592602848cfa256f34c5b0c7bb8
zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java
@@ -3,9 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.common.domain.dto.DetlDto;
import com.zy.asrs.common.openapi.entity.dto.OrderListDto;
import com.zy.asrs.common.openapi.entity.param.GenerateOrderPakInParam;
import com.zy.asrs.common.openapi.entity.param.GenerateOrderPakOutParam;
import com.zy.asrs.common.openapi.entity.param.OrderListParam;
import com.zy.asrs.common.openapi.entity.param.*;
import com.zy.asrs.common.openapi.service.ApiService;
import com.zy.asrs.common.wms.entity.*;
import com.zy.asrs.common.wms.service.*;
@@ -15,6 +13,7 @@
import com.zy.asrs.framework.exception.CoolException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
@@ -35,6 +34,8 @@
    private MatService matService;
    @Autowired
    private OrderSettleService orderSettleService;
    @Autowired
    private TagService tagService;
    @Override
    public void generateOrderPakIn(GenerateOrderPakInParam param) {
@@ -88,28 +89,16 @@
        if (!orderService.save(order)) {
            throw new CoolException("生成单据主档失败,请联系管理员");
        }
        // 单据明细档
        List<DetlDto> list = new ArrayList<>();
        List<DetlDto> orderDetails = param.getOrderDetails();
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
                list.add(dto);
            }
        }
        for (DetlDto detlDto : list) {
            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, detlDto.getMatnr()).eq(Mat::getHostId, param.getHostId()));
        List<GenerateOrderMatParam> mats = param.getMats();
        for (GenerateOrderMatParam matParam : mats) {
            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matParam.getMatnr()).eq(Mat::getHostId, param.getHostId()));
            if (Cools.isEmpty(mat)) {
                throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品");
                throw new CoolException(matParam.getMatnr() + "编号商品检索失败,请先添加商品");
            }
            OrderDetl orderDetl = new OrderDetl();
            orderDetl.sync(mat);
            orderDetl.setBatch(detlDto.getBatch());
            orderDetl.setAnfme(detlDto.getAnfme());
            orderDetl.setBatch(matParam.getBatch());
            orderDetl.setAnfme(matParam.getAnfme());
            orderDetl.setOrderId(order.getId());
            orderDetl.setOrderNo(order.getOrderNo());
            orderDetl.setCreateBy(9527L);
@@ -180,28 +169,16 @@
        if (!orderService.save(order)) {
            throw new CoolException("生成单据主档失败,请联系管理员");
        }
        // 单据明细档
        List<DetlDto> list = new ArrayList<>();
        List<DetlDto> orderDetails = param.getOrderDetails();
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
                list.add(dto);
            }
        }
        for (DetlDto detlDto : list) {
            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, detlDto.getMatnr()).eq(Mat::getHostId, param.getHostId()));
        List<GenerateOrderMatParam> mats = param.getMats();
        for (GenerateOrderMatParam matParam : mats) {
            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matParam.getMatnr()).eq(Mat::getHostId, param.getHostId()));
            if (Cools.isEmpty(mat)) {
                throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品");
                throw new CoolException(matParam.getMatnr() + "编号商品检索失败,请先添加商品");
            }
            OrderDetl orderDetl = new OrderDetl();
            orderDetl.sync(mat);
            orderDetl.setBatch(detlDto.getBatch());
            orderDetl.setAnfme(detlDto.getAnfme());
            orderDetl.setBatch(matParam.getBatch());
            orderDetl.setAnfme(matParam.getAnfme());
            orderDetl.setOrderId(order.getId());
            orderDetl.setOrderNo(order.getOrderNo());
            orderDetl.setCreateBy(9527L);
@@ -253,4 +230,105 @@
        }
        return listDtos;
    }
    @Override
    @Transactional
    public int createMat(CreateMatParam param) {
        int count = 0;
        Long hostId = param.getHostId();
        for (MatParam matParam : param.getMats()) {
            //获取分类
            Tag tag = tagService.getTag(matParam.getFirstTag(), matParam.getSecondTag(), hostId);
            matService.remove(new LambdaQueryWrapper<Mat>()
                    .eq(Mat::getMatnr, matParam.getMatnr())
                    .eq(Mat::getHostId, hostId));
            Mat mat = new Mat();
            mat.setMatnr(matParam.getMatnr());//物料号
            mat.setHostId(hostId);//仓库ID
            mat.setTagId(tag.getId());//分类ID
            if (!Cools.isEmpty(matParam.getMaktx())) {
                mat.setMaktx(matParam.getMaktx());
            }
            if (!Cools.isEmpty(matParam.getMaktx())) {
                mat.setMaktx(matParam.getMaktx());
            }
            if (!Cools.isEmpty(matParam.getName())) {
                mat.setName(matParam.getName());
            }
            if (!Cools.isEmpty(matParam.getSpecs())) {
                mat.setSpecs(matParam.getSpecs());
            }
            if (!Cools.isEmpty(matParam.getModel())) {
                mat.setModel(matParam.getModel());
            }
            if (!Cools.isEmpty(matParam.getColor())) {
                mat.setColor(matParam.getColor());
            }
            if (!Cools.isEmpty(matParam.getBrand())) {
                mat.setBrand(matParam.getBrand());
            }
            if (!Cools.isEmpty(matParam.getUnit())) {
                mat.setUnit(matParam.getUnit());
            }
            if (!Cools.isEmpty(matParam.getPrice())) {
                mat.setPrice(matParam.getPrice());
            }
            if (!Cools.isEmpty(matParam.getSku())) {
                mat.setSku(matParam.getSku());
            }
            if (!Cools.isEmpty(matParam.getUnits())) {
                mat.setUnits(matParam.getUnits());
            }
            if (!Cools.isEmpty(matParam.getBarcode())) {
                mat.setBarcode(matParam.getBarcode());
            }
            if (!Cools.isEmpty(matParam.getOrigin())) {
                mat.setOrigin(matParam.getOrigin());
            }
            if (!Cools.isEmpty(matParam.getManu())) {
                mat.setManu(matParam.getManu());
            }
            if (!Cools.isEmpty(matParam.getManuDate())) {
                mat.setManuDate(matParam.getManuDate());
            }
            if (!Cools.isEmpty(matParam.getItemNum())) {
                mat.setItemNum(matParam.getItemNum());
            }
            if (!Cools.isEmpty(matParam.getWeight())) {
                mat.setWeight(matParam.getWeight());
            }
            if (!Cools.isEmpty(matParam.getLength())) {
                mat.setLength(matParam.getLength());
            }
            if (!Cools.isEmpty(matParam.getVolume())) {
                mat.setVolume(matParam.getVolume());
            }
            if (!Cools.isEmpty(matParam.getThreeCode())) {
                mat.setThreeCode(matParam.getThreeCode());
            }
            if (!Cools.isEmpty(matParam.getSupp())) {
                mat.setSupp(matParam.getSupp());
            }
            if (!Cools.isEmpty(matParam.getSuppCode())) {
                mat.setSuppCode(matParam.getSuppCode());
            }
            if (!Cools.isEmpty(matParam.getDeadTime())) {
                mat.setDeadTime(matParam.getDeadTime());
            }
            if (!Cools.isEmpty(matParam.getMemo())) {
                mat.setMemo(matParam.getMemo());
            }
            if (!Cools.isEmpty(matParam.getStatus())) {
                mat.setStatus(matParam.getStatus());
            }else {
                mat.setStatus(1);
            }
            if (matService.save(mat)) {
                count++;
            }
        }
        return count;
    }
}