自动化立体仓库 - WMS系统
skyouc
1 天以前 1fdb053b64a033280a8ffe0ea10ad54b604e58cd
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -15,27 +15,21 @@
import com.zy.api.entity.StockAdjustParams;
import com.zy.api.entity.StockUpOrderParams;
import com.zy.api.entity.SyncMatParmas;
import com.zy.api.entity.dto.LocDetlDto;
import com.zy.api.entity.dto.XSR;
import com.zy.api.enums.MatLocType;
import com.zy.api.enums.OrderType;
import com.zy.api.enums.OrderWkType;
import com.zy.api.service.KopenApiService;
import com.zy.asrs.entity.CheckOrder;
import com.zy.asrs.entity.CheckOrderDetl;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.*;
import com.zy.asrs.enums.CommonEnum;
import com.zy.asrs.enums.OrderSettle;
import com.zy.asrs.enums.OrderTypeEnum;
import com.zy.asrs.service.CheckOrderDetlService;
import com.zy.asrs.service.CheckOrderService;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.MatService;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.BasAreasServiceImpl;
import com.zy.asrs.service.impl.OrderDetlPakinServiceImpl;
import com.zy.asrs.service.impl.OrderPakinServiceImpl;
import com.zy.asrs.utils.Utils;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
@@ -47,6 +41,7 @@
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service("kopenApiServiceImpl")
@@ -72,6 +67,12 @@
    private String port;
    @Value("${kopen.prefix}")
    private String prefix;
    @Autowired
    private BasAreasService basAreasService;
    @Autowired
    private OrderPakinService orderPakinService;
    @Autowired
    private OrderDetlPakinService orderDetlPakinService;
    /**
@@ -126,6 +127,7 @@
            if (!Objects.isNull(code) && code.equals(200)) {
                if (!Objects.isNull(order)) {
                    order.setReportOnce(5);
                    order.setSettle(6L);
                    orderService.updateById(order);
                }
                return XSR.ok("入库单上报完成!!");
@@ -201,7 +203,6 @@
            if (Objects.isNull(params.getCompany_id())) {
                throw new CoolException("公司ID不能为空!!");
            }
            addOrUpdateOrders(params, type);
        });
@@ -370,19 +371,28 @@
            /** 不存在,新增订单 */
            generateOrders(params, type);
        } else {
            if (order.getSettle() == 2) {
            OrderPakin orderPakin = orderPakinService.selectOne(new EntityWrapper<OrderPakin>().eq("order_no", order.getOrderNo()));
            if (!Objects.isNull(orderPakin) && orderPakin.getSettle() != 1) {
                throw new CoolException("订单已处理,不可再变更!!");
            }
            /** 存在,删除老订单,更新插入新订单 */
            // 删除旧订单明细
            if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
                throw new CoolException("订单明细删除失败!!");
            if (!orderDetlPakinService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_no", orderPakin.getOrderNo()))) {
                throw new CoolException("订单删除失败!!");
            }
            if (!orderService.deleteById(order.getId())) {
            if (!orderPakinService.delete(new EntityWrapper<OrderPakin>().eq("order_no", orderPakin.getOrderNo()))) {
                throw new CoolException("主单删除失败!!");
            }
            // 删除旧订单明细
//            if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
//                throw new CoolException("订单明细删除失败!!");
//            }
            order.setSettle(3L);
            if (!orderService.updateById(order)) {
                throw new CoolException("原单据删除失败!!");
            }
            generateOrders(params, type);
//            generateOrders(params, type);
        }
    }
@@ -447,7 +457,9 @@
        }
        if (!Objects.isNull(params.getDetails()) && !params.getDetails().isEmpty()) {
            params.getDetails().forEach(item -> {
                Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", item.getPro_komcode()));
                Mat matnr = matService.selectOne(new EntityWrapper<Mat>()
                        .eq("supp_code", item.getPro_id())
                        .eq("matnr", item.getPro_komcode()));
                if (Objects.isNull(matnr)) {
                    throw new CoolException("物料编码不存在!!");
                }
@@ -557,18 +569,48 @@
     * @return com.core.common.R
     */
    @Override
    public XSR getStockInfo(PageRequestParams params) {
        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
        if (!Objects.isNull(params.getPro_id())) {
            wrapper.eq("supp_code", params.getPro_id());
    public XSR getStockInfo(List<PageRequestParams> params) {
        if (Objects.isNull(params) || params.isEmpty()) {
            throw new CoolException("参数不能为空!!");
        }
        if (!Objects.isNull(params.getPro_komcode())) {
            wrapper.eq("matnr", params.getPro_komcode());
        List<LocDetl> detls = new ArrayList<>();
        params.forEach(param -> {
            List<LocDetl> selectList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("supp_code", param.getPro_id()).eq("matnr", param.getPro_komcode()));
            if (selectList != null && !selectList.isEmpty()) {
                detls.addAll(selectList);
            }
        });
        if (detls == null || detls.isEmpty()) {
            return XSR.ok();
        }
        Page<LocDetl> locDetls = locDetlService.selectPage(new Page<>(params.getCurr(), params.getLimit()), wrapper);
        return XSR.ok(locDetls.getRecords());
        List<LocDetlDto> dtos = new ArrayList<>();
        detls.forEach(item -> {
            LocDetlDto locDetlDto = new LocDetlDto();
            if (item.getDiffQty().compareTo(BigDecimal.ZERO) == 0) {
                locDetlDto.setLock_qty(0);
            } else {
                locDetlDto.setLock_qty(Integer.parseInt(item.getDiffQty().toString()));
            }
            if (item.getBookQty().compareTo(BigDecimal.ZERO) == 0) {
                locDetlDto.setStock_qty(item.getAnfme().intValue());
            } else {
                locDetlDto.setStock_qty(Integer.parseInt(item.getBookQty().toString()));
            }
            LocDetl barcode = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("zpallet", item.getZpallet()));
            if (!Objects.isNull(barcode)) {
                BasAreas areas = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("id", barcode.getAreaId()));
                if (!Objects.isNull(areas)) {
                    locDetlDto.setTarget_location(areas.getName());
                }
            }
            locDetlDto
                    .setPro_komcode(item.getMatnr())
                    .setPro_id(item.getStandby1())
                    .setLocation_no(item.getZpallet());
            dtos.add(locDetlDto);
        });
        return XSR.ok(dtos);
    }
    /**
@@ -722,11 +764,17 @@
        try {
            response = new HttpHandler.Builder()
                    .setUri(url + ":" + port)
                    .setPath(prefix + "/getOutDetailsResult")
                    .setPath(prefix + "/getOutDispatchResult")
                    .setJson(JSONObject.toJSONString(orderParams))
                    .build()
                    .doPost();
            if (Objects.isNull(response) || response.trim().isEmpty()) {
             if (Objects.isNull(response) || response.trim().isEmpty()) {
                 if (!Objects.isNull(order)) {
                     int reportOnce = order.getReportOnce();
                     reportOnce++;
                     order.setReportOnce(reportOnce);
                     orderService.updateById(order);
                 }
                return XSR.error("外网接口无响应!!");
            }
            JSONObject jsonObject = JSONObject.parseObject(response);