新火炬后端单体项目初始化代码
zhangherong
13 小时以前 30f750d98beccae02b87f5f97d114d030fbccd83
src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java
@@ -7,12 +7,21 @@
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.wms.dto.WSResponse;
import org.jeecg.modules.mes.service.IMesTransferOrderPrintService;
import org.jeecg.modules.wms.dto.MESResponse;
import org.jeecg.modules.wms.request.ReceiveWMSScanItemList;
import org.jeecg.modules.wms.request.WMSWebServiceSendItem;
import org.jeecg.modules.wms.service.MESWebServiceSoap;
@@ -20,17 +29,12 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
import java.math.BigDecimal;
@Slf4j
@Service
@Service("MESWebServiceSoap")
@WebService(name = "MESWebServiceSoap", targetNamespace = "http://xhj008.server.webservice.com", endpointInterface = "org.jeecg.modules.wms.service.MESWebServiceSoap")
public class MESWebServiceSoapImpl implements MESWebServiceSoap {
@@ -40,22 +44,25 @@
    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)
    @WebMethod(operationName = "ReceiveWMSScanItemList", action = "http://xhj008.server.webservice.com/ReceiveWMSScanItemList")
    @RequestWrapper(localName = "ReceiveWMSScanItemList", targetNamespace = "http://xhj008.server.webservice.com/", className = "ReceiveWMSScanItemList")
    @ResponseWrapper(localName = "ReceiveWMSScanItemListResponse", targetNamespace = "http://xhj008.server.webservice.com/", className = "ReceiveWMSScanItemListResponse")
    @WebResult(name = "ReceiveWMSScanItemListResult", targetNamespace = "http://xhj008.server.webservice.com/")
    @ApiLog(apiName = "接收WMS的移库信息(ReceiveWMSScanItemList(MES)", apiCategory = ApiLogCategoryEnum.WMS)
    public WSResponse receiveWMSScanItemList(@WebParam(name = "ReceiveWMSScanItemList", targetNamespace = "http://xhj008.server.webservice.com/") ReceiveWMSScanItemList request) {
        WSResponse response = new WSResponse();
    public MESResponse receiveWMSScanItemList(ReceiveWMSScanItemList request) {
        MESResponse response = new MESResponse();
        if (request == null || CollectionUtil.isEmpty(request.getWmsWebServiceSendItemList())) {
            response.setErrorCode("N");
            response.setErrorDesc("传入的参数为空!");
            return response;
        }
        String errorCode = "N";
        int errorCount = 0;
        int successCount = 0;
        StringBuilder errorMsg = new StringBuilder();
@@ -65,23 +72,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 +106,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;
    }
}