新火炬后端单体项目初始化代码
zhangherong
昨天 99af0223ae0858c69d1b75106d5f8bb0ab14b129
src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java
@@ -7,11 +7,20 @@
import org.jeecg.common.constant.ApiLogCategoryEnum;
import org.jeecg.modules.base.entity.LineSideWarehouse;
import org.jeecg.modules.base.service.ILineSideWarehouseService;
import org.jeecg.modules.lsw.entity.LswMaterial;
import org.jeecg.modules.lsw.entity.LswMaterialInbound;
import org.jeecg.modules.lsw.entity.LswMaterialInventory;
import org.jeecg.modules.lsw.entity.LswMaterialOutbound;
import org.jeecg.modules.lsw.service.ILswMaterialInboundService;
import org.jeecg.modules.lsw.service.ILswMaterialInventoryService;
import org.jeecg.modules.lsw.service.ILswMaterialOutboundService;
import org.jeecg.modules.lsw.service.ILswMaterialService;
import org.jeecg.modules.mes.entity.MesMaterialTransferRequest;
import org.jeecg.modules.mes.entity.MesTransferOrderPrint;
import org.jeecg.modules.mes.enums.MaterialTransferRequestStatus;
import org.jeecg.modules.mes.enums.TransferOrderStatusEnum;
import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService;
import org.jeecg.modules.mes.service.IMesTransferOrderPrintService;
import org.jeecg.modules.wms.dto.WSResponse;
import org.jeecg.modules.wms.request.ReceiveWMSScanItemList;
import org.jeecg.modules.wms.request.WMSWebServiceSendItem;
@@ -40,6 +49,14 @@
    private ILineSideWarehouseService lineSideWarehouseService;
    @Autowired
    private ILswMaterialInboundService materialInboundService;
    @Autowired
    private IMesTransferOrderPrintService transferOrderPrintService;
    @Autowired
    private ILswMaterialOutboundService materialOutboundService;
    @Autowired
    private ILswMaterialInventoryService materialInventoryService;
    @Autowired
    private ILswMaterialService materialService;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -55,7 +72,6 @@
            response.setErrorDesc("传入的参数为空!");
            return response;
        }
        String errorCode = "N";
        int errorCount = 0;
        int successCount = 0;
        StringBuilder errorMsg = new StringBuilder();
@@ -65,23 +81,23 @@
                MesMaterialTransferRequest transferRequest = materialTransferRequestService.queryByReservationCode(item.getReservationOrder());
                if (transferRequest == null) {
                    errorCount++;
                    errorMsg.append("根据预留号[").append(item.getReservationOrder()).append("]未找到物料拉动单!");
                    errorMsg.append("根据预留号[").append(item.getReservationOrder()).append("]未找到物料拉动单!\n");
                    continue;
                }
                LineSideWarehouse warehouse = lineSideWarehouseService.getById(transferRequest.getTargetWarehouseId());
                if(warehouse == null || !warehouse.getWarehouseCode().equals(item.getDestSection())) {
                if (warehouse == null || !warehouse.getWarehouseCode().equals(item.getDestSection())) {
                    errorCount++;
                    errorMsg.append("线边库[").append(item.getDestSection()).append("]未找到!");
                    errorMsg.append("线边库[").append(item.getDestSection()).append("]未找到!\n");
                    continue;
                }
                if(!transferRequest.getMaterialNumber().equals(item.getSkuCode())) {
                if (!transferRequest.getMaterialNumber().equals(item.getSkuCode())) {
                    errorCount++;
                    errorMsg.append("物料编号[").append(item.getSkuCode()).append("]不匹配!");
                    errorMsg.append("物料编号[").append(item.getSkuCode()).append("]不匹配!\n");
                    continue;
                }
                if(StringUtils.isBlank(item.getTrackLot())) {
                if (StringUtils.isBlank(item.getTrackLot())) {
                    errorCount++;
                    errorMsg.append("批次号[").append(item.getTrackLot()).append("]不能为空!");
                    errorMsg.append("批次号[").append(item.getTrackLot()).append("]不能为空!\n");
                    continue;
                }
                transferRequest.setRequestStatus(MaterialTransferRequestStatus.CHECKED_IN.name());
@@ -99,17 +115,78 @@
                inbound.setQuantity(item.getQuantity());
                inbound.setFactoryId(warehouse.getFactoryId());
                boolean b = materialInboundService.inboundMaterial(inbound);
                if(!b) {
                if (!b) {
                    errorCount++;
                    errorMsg.append("预留号[").append(item.getReservationOrder()).append("]入库失败!");
                    errorMsg.append("预留号[").append(item.getReservationOrder()).append("]入库失败!\n");
                    continue;
                }
                //更新物料拉动单
                materialTransferRequestService.updateById(transferRequest);
                successCount++;
            } else if (StringUtils.isNotBlank(item.getAlign())) {
                //移库单回调
                MesTransferOrderPrint transferOrder = transferOrderPrintService.queryByOrderCode(item.getAlign());
                if (transferOrder == null) {
                    errorCount++;
                    errorMsg.append("移库单[").append(item.getAlign()).append("]不存在!\n");
                    continue;
                }
                LswMaterialInventory inventory = materialInventoryService.getById(item.getMesStockID());
                if (inventory == null) {
                    errorCount++;
                    errorMsg.append("库存信息[").append(item.getMesStockID()).append("]不存在!\n");
                    continue;
                }
                LswMaterial material = materialService.queryByMaterialNumber(item.getSkuCode());
                if(material == null) {
                    errorCount++;
                    errorMsg.append("物料编号[").append(item.getSkuCode()).append("]不存在!\n");
                    continue;
                }
                LineSideWarehouse warehouse = lineSideWarehouseService.getById(transferOrder.getOriginalWarehouseId());
                if (warehouse == null || !warehouse.getWarehouseCode().equals(item.getDestSection())) {
                    errorCount++;
                    errorMsg.append("线边库[").append(item.getDestSection()).append("]未找到!\n");
                    continue;
                }
                //移库单更改
                transferOrder.setOrderStatus(TransferOrderStatusEnum.COMPLETED.name());
                //成品出库
                LswMaterialOutbound outbound = new LswMaterialOutbound();
                outbound.setBatchNumber(inventory.getBatchNumber());
                outbound.setQuantity(item.getQuantity());
                outbound.setMaterialNumber(material.getMaterialNumber());
                outbound.setMaterialName(material.getMaterialName());
                outbound.setInventoryId(inventory.getId());
                outbound.setWarehouseId(transferOrder.getOriginalWarehouseId());
                outbound.setFactoryId(warehouse.getFactoryId());
                outbound.setOutboundStaff("WMS");
                boolean b = materialOutboundService.outboundMaterial(outbound);
                if (!b) {
                    errorCount++;
                    errorMsg.append("移库单[").append(item.getAlign()).append("]出库失败!\n");
                    continue;
                }
                transferOrderPrintService.updateById(transferOrder);
                successCount++;
            }
        }
        //处理返回结果
        if (errorCount > 0) {
            response.setErrorCode("N");
            if (successCount > 0) {
                String msg = "成功执行" + successCount + "条,失败" + errorCount + "条!\n";
                errorMsg.insert(0, msg);
            } else {
                String msg = "失败" + errorCount + "条!\n";
                errorMsg.insert(0, msg);
            }
            response.setErrorDesc(errorMsg.toString());
        } else {
            response.setErrorCode("Y");
            String msg = "成功执行" + successCount + "条!\n";
            response.setErrorDesc(msg);
        }
        return response;
    }
}