新火炬后端单体项目初始化代码
已添加2个文件
已修改18个文件
489 ■■■■■ 文件已修改
src/main/java/org/jeecg/modules/lsw/controller/LswMaterialController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/entity/MesMaterialUnloading.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/entity/MesProductionWorkOrder.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/enums/ReportCategoryEnum.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/mapper/xml/MesMaterialLoadingMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/mapper/xml/MesProductionWorkOrderMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialLoadingServiceImpl.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/config/WebServiceServerConfig.java 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/controller/ReceiveWMSScanItemListController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/dto/MESResponse.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/dto/ReceiveWMSScanItemListResponse.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/ReceiveWMSScanItemList.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/WMSWebServiceSendItem.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/MESWebServiceSoap.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/lsw/controller/LswMaterialController.java
@@ -165,6 +165,14 @@
                        .eq(LswMaterial::getMaterialStatus, CommonConstant.STATUS_1)
                        .orderByAsc(LswMaterial::getMaterialNumber));
                break;
            case HEATTREATMENT:
                //热处理线,查询毛坯物料
                lswMaterialList = lswMaterialService.list(new LambdaQueryWrapper<LswMaterial>()
                        .eq(LswMaterial::getMaterialCategory, MaterialCategoryEnum.BLANK.name())
                        .eq(LswMaterial::getDelFlag, CommonConstant.DEL_FLAG_0)
                        .eq(LswMaterial::getMaterialStatus, CommonConstant.STATUS_1)
                        .orderByAsc(LswMaterial::getMaterialNumber));
                break;
        }
        return Result.OK(lswMaterialList);
    }
src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java
@@ -71,12 +71,15 @@
     * @param mesMaterialLoading
     * @return
     */
    @AutoLog(value = "上料-编辑")
    @ApiOperation(value = "上料-编辑", notes = "上料-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<String> edit(@RequestBody MesMaterialLoading mesMaterialLoading) {
        mesMaterialLoadingService.updateById(mesMaterialLoading);
        return Result.OK("编辑成功!");
    @AutoLog(value = "上料-下料")
    @ApiOperation(value = "上料-下料", notes = "上料-下料")
    @RequestMapping(value = "/unloading", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<String> unloading(@RequestBody MesMaterialLoading mesMaterialLoading) {
        boolean b = mesMaterialLoadingService.unloading(mesMaterialLoading);
        if (!b) {
            Result.error("下料失败!");
        }
        return Result.OK("下料成功!");
    }
    /**
src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java
@@ -35,6 +35,7 @@
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@@ -96,4 +97,7 @@
    /** åˆ†ç±» */
    @TableField(exist = false)
    private String category;
    /** ä¸‹æ–™æ•°é‡ */
    @TableField(exist = false)
    private BigDecimal unloadingQuantity;
}
src/main/java/org/jeecg/modules/mes/entity/MesMaterialUnloading.java
@@ -14,6 +14,7 @@
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
@@ -74,5 +75,5 @@
    /**数量*/
    @Excel(name = "数量", width = 15)
    @ApiModelProperty(value = "数量")
    private Double quantity;
    private BigDecimal quantity;
}
src/main/java/org/jeecg/modules/mes/entity/MesProductionWorkOrder.java
@@ -153,6 +153,10 @@
    /**产线名称*/
    @TableField(exist = false)
    private String factoryName;
    /**产线类型*/
    @TableField(exist = false)
    @Dict(dicCode = "production_type")
    private String productionType;
    /**班组名称*/
    @TableField(exist = false)
    private String groupName;
src/main/java/org/jeecg/modules/mes/enums/ReportCategoryEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package org.jeecg.modules.mes.enums;
public enum ReportCategoryEnum {
    /**
     * æˆå“æŠ¥å·¥
     */
    FINISHED,
    /**
     * åŠæˆå“æŠ¥å·¥
     */
    HALF,
    /**
     * çƒ­å¤„理报工
     */
    HEATTREATMENT
}
src/main/java/org/jeecg/modules/mes/mapper/xml/MesMaterialLoadingMapper.xml
@@ -32,7 +32,7 @@
                     t2.warehouse_id,
                     t2.batch_number,
                     t2.steel_ball_size,
                     t2.quantity,
                     t1.quantity,
                     t2.remaining_quantity,
                     t2.unloading_flag,
                     'UNLOADING' AS category
src/main/java/org/jeecg/modules/mes/mapper/xml/MesProductionWorkOrderMapper.xml
@@ -8,6 +8,7 @@
            t1.work_order_code AS text,
            t1.id AS value,
            t2.factory_code factoryCode,
            t2.production_type productionType,
            t3.shift_code shiftCode
        FROM mes_production_work_order t1
        LEFT JOIN base_factory t2 ON t1.factory_id = t2.id
src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java
@@ -7,7 +7,6 @@
import org.jeecg.modules.mes.entity.MesMaterialUnloading;
import java.util.List;
import java.util.Map;
/**
 * @Description: ä¸Šæ–™
@@ -32,4 +31,11 @@
     * @return
     */
    boolean loading(MesMaterialLoading mesMaterialLoading);
    /**
     * ä¸‹æ–™
     * @param mesMaterialLoading
     * @return
     */
    boolean unloading(MesMaterialLoading mesMaterialLoading);
}
src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialLoadingServiceImpl.java
@@ -3,7 +3,6 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.shiro.SecurityUtils;
@@ -13,10 +12,13 @@
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.enums.MaterialCategoryEnum;
import org.jeecg.modules.lsw.enums.MaterialInboundCategory;
import org.jeecg.modules.lsw.enums.MaterialOutboundCategory;
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;
@@ -24,13 +26,12 @@
import org.jeecg.modules.mes.entity.MesMaterialUnloading;
import org.jeecg.modules.mes.mapper.MesMaterialLoadingMapper;
import org.jeecg.modules.mes.service.IMesMaterialLoadingService;
import org.jeecg.modules.mes.service.IMesMaterialUnloadingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
 * @Description: ä¸Šæ–™
@@ -49,6 +50,10 @@
    private ILswMaterialInventoryService materialInventoryService;
    @Autowired
    private ILswMaterialService materialService;
    @Autowired
    private IMesMaterialUnloadingService mesMaterialUnloadingService;
    @Autowired
    private ILswMaterialInboundService materialInboundService;
    @Override
    public List<MesMaterialUnloading> queryUnloadingByLoadingId(String loadingId) {
@@ -138,4 +143,54 @@
        this.save(mesMaterialLoading);
        return true;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean unloading(MesMaterialLoading mesMaterialLoading) {
        if (mesMaterialLoading == null) {
            throw new JeecgBootException("参数错误!");
        }
        if (StringUtils.isBlank(mesMaterialLoading.getId())
                || mesMaterialLoading.getUnloadingQuantity() == null
                || mesMaterialLoading.getUnloadingQuantity().intValue() < 1) {
            throw new JeecgBootException("参数错误!");
        }
        //查询上料数据
        MesMaterialLoading loading = super.getById(mesMaterialLoading.getId());
        if (loading == null) {
            throw new JeecgBootException("未查询到上料数据!");
        }
        if (loading.getRemainingQuantity().compareTo(mesMaterialLoading.getUnloadingQuantity()) < 0) {
            throw new JeecgBootException("下料数量不能大于当前剩余数量!");
        }
        //线边库信息
        LineSideWarehouse warehouse = lineSideWarehouseService.getById(loading.getWarehouseId());
        if(warehouse == null) {
            throw new JeecgBootException("未查询到线边库!");
        }
        loading.setUnloadingFlag(CommonConstant.STATUS_1);
        loading.setRemainingQuantity(loading.getRemainingQuantity().subtract(mesMaterialLoading.getUnloadingQuantity()));
        super.updateById(loading);
        //保存下料信息
        MesMaterialUnloading unloading = new MesMaterialUnloading();
        unloading.setLoadingId(loading.getId());
        unloading.setMaterialNumber(loading.getMaterialNumber());
        unloading.setMaterialName(loading.getMaterialName());
        unloading.setBatchNumber(loading.getBatchNumber());
        unloading.setQuantity(mesMaterialLoading.getUnloadingQuantity());
        mesMaterialUnloadingService.save(unloading);
        //保存入库信息
        LswMaterialInbound materialInbound = new LswMaterialInbound()
                .setFactoryId(loading.getFactoryId())
                .setWarehouseId(loading.getWarehouseId())
                .setMaterialNumber(loading.getMaterialNumber())
                .setMaterialName(loading.getMaterialName())
                .setBatchNumber(loading.getBatchNumber())
                .setQuantity(unloading.getQuantity())
                .setInboundCategory(MaterialInboundCategory.PRODUCTION_UNLOADING.name())//下料
                .setOriginalCode(warehouse.getWarehouseCode())
                .setOriginalName(warehouse.getWarehouseName());
        materialInboundService.inboundMaterial(materialInbound);
        return true;
    }
}
src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java
@@ -17,11 +17,15 @@
import org.jeecg.modules.base.service.IShiftService;
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.enums.MaterialCategoryEnum;
import org.jeecg.modules.lsw.enums.MaterialInboundCategory;
import org.jeecg.modules.lsw.enums.MaterialInventoryStatusEnum;
import org.jeecg.modules.lsw.service.ILswMaterialInboundService;
import org.jeecg.modules.lsw.service.ILswMaterialInventoryService;
import org.jeecg.modules.lsw.service.ILswMaterialService;
import org.jeecg.modules.mes.entity.*;
import org.jeecg.modules.mes.enums.ReportCategoryEnum;
import org.jeecg.modules.mes.mapper.MesWorkReportingMapper;
import org.jeecg.modules.mes.service.*;
import org.jeecg.modules.mes.utils.CommonUtils;
@@ -49,6 +53,7 @@
import java.time.temporal.ChronoField;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * @Description: å·¥å•报工
@@ -94,6 +99,8 @@
    private IInspectionPlanItemService inspectionPlanItemService;
    @Autowired
    private IMesMaterialConsumptionDetailService mesMaterialConsumptionDetailService;
    @Autowired
    private ILswMaterialInventoryService lswMaterialInventoryService;
    @Override
    public List<MesWorkReporting> queryWorkReportingByWorkOrderId(String workOrderId) {
@@ -158,7 +165,7 @@
                //拼接成品报工托号
                String palletNumber4 = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingPalletNumber4");
                String finishedPalletNumber = material.getMaterialNumber() + date + palletNumber4;
                mesWorkReporting.setPalletNumber(finishedPalletNumber).setReportType("FINISHED");
                mesWorkReporting.setPalletNumber(finishedPalletNumber).setReportType(ReportCategoryEnum.FINISHED.name());
                break;
            case INNER_FLANGE:
            case OUTER_FLANGE:
@@ -168,8 +175,13 @@
                Shift shift = shiftService.getById(workOrder.getShiftId());
                String palletNumber6 = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingPalletNumber6");
                String halfPalletNumber = factory.getFactoryCode() + material.getMaterialNumber() + date + shift.getShiftCode() + palletNumber6;
                mesWorkReporting.setPalletNumber(halfPalletNumber).setReportType("HALF");
                mesWorkReporting.setPalletNumber(halfPalletNumber).setReportType(ReportCategoryEnum.HALF.name());
                break;
            case BLANK:
                //热处理报工
                consumptionDetailList = heatTreatmentReport(mesWorkReporting, workOrder, lineSideWarehouse);
                mesWorkReporting.setReportType(ReportCategoryEnum.HEATTREATMENT.name());
        }
        //新增报工记录
        save(mesWorkReporting);
@@ -186,6 +198,48 @@
        return mesWorkReporting;
    }
    //热处理报工
    private List<MesMaterialConsumptionDetail> heatTreatmentReport(MesWorkReporting mesWorkReporting, MesProductionWorkOrder workOrder, LineSideWarehouse lineSideWarehouse) {
        //1、入库热处理毛坯到对应线边库,热处理前后物料编码不发生变化,只需要更新热处理标识,所以此处不能直接调用线边库的入库方法,需要直接更新物料库存信息中的热处理标识字段
        LswMaterialInventory materialInventory = lswMaterialInventoryService.list(new LambdaQueryWrapper<LswMaterialInventory>()
                .eq(LswMaterialInventory::getWarehouseId, lineSideWarehouse.getId())
                .eq(LswMaterialInventory::getInventoryStatus, MaterialInventoryStatusEnum.OUTBOUND.name())
                .eq(LswMaterialInventory::getHeatTreatmentFlag, CommonConstant.STATUS_0)
                .apply("EXISTS (SELECT 1 FROM lsw_material t WHERE t.id = lsw_material_inventory.material_id AND t.material_number = {0} " +
                        "AND t.del_flag = {1} AND t.material_status = {2})", workOrder.getMaterialNumber(), CommonConstant.DEL_FLAG_0, CommonConstant.STATUS_1))
                .stream().findFirst().orElse(null);
        if (materialInventory == null) {
            throw new JeecgBootException("线边库无该物料库存信息!");
        }
        if (materialInventory.getQuantity().compareTo(mesWorkReporting.getQuantity()) != 0) {
            throw new JeecgBootException("报工数量不符合整批次数量要求!");
        }
        materialInventory.setHeatTreatmentFlag(CommonConstant.STATUS_1);
        materialInventory.setInventoryStatus(MaterialInventoryStatusEnum.NORMAL.name());
        lswMaterialInventoryService.updateById(materialInventory);
        //2、更新该批次号得上料记录
        MesMaterialLoading materialLoading = mesMaterialLoadingService.list(new LambdaQueryWrapper<MesMaterialLoading>()
                        .eq(MesMaterialLoading::getFactoryId, workOrder.getFactoryId())
                        .eq(MesMaterialLoading::getWarehouseId, lineSideWarehouse.getId())
                        .eq(MesMaterialLoading::getMaterialNumber, workOrder.getMaterialNumber())
                        .eq(MesMaterialLoading::getBatchNumber, materialInventory.getBatchNumber()))
                        .stream().findFirst().orElse(null);
        if (materialLoading == null) {
            throw new JeecgBootException("未找到该批次号的上料记录!");
        }
        materialLoading.setRemainingQuantity(BigDecimal.ZERO);
        mesMaterialLoadingService.updateById(materialLoading);
        //热处理报工,批次号取库存的整批批次号
        mesWorkReporting.setBatchNumber(materialInventory.getBatchNumber());
        //3、记录消耗明细
        MesMaterialConsumptionDetail materialConsumptionDetail = new MesMaterialConsumptionDetail()
                .setWorkOrderId(workOrder.getId())
                .setFactoryId(workOrder.getFactoryId())
                .setLoadingId(materialLoading.getId())
                .setQuantity(mesWorkReporting.getQuantity());
        return Collections.singletonList(materialConsumptionDetail);
    }
    //半成品(内法兰、外法兰)、成品报工
    private List<MesMaterialConsumptionDetail> productReport(MesWorkReporting mesWorkReporting, MesProductionWorkOrder workOrder, LineSideWarehouse lineSideWarehouse) {
        //1、入库 åŠæˆå“/成品 åˆ°å¯¹åº”线边库
src/main/java/org/jeecg/modules/wms/config/WebServiceServerConfig.java
@@ -1,36 +1,36 @@
package org.jeecg.modules.wms.config;
import org.apache.cxf.Bus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.jeecg.modules.wms.service.MESWebServiceSoap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.xml.ws.Endpoint;
@Configuration
public class WebServiceServerConfig {
    @Autowired
    private Bus bus;
    @Autowired
    private MESWebServiceSoap mesWebServiceSoap;
    @Bean(name = "cxfServlet")  // æ³¨å…¥servlet bean name不能dispatcherServlet ,否则会覆盖dispatcherServlet
    public ServletRegistrationBean<CXFServlet> cxfServlet() {
        return new ServletRegistrationBean<>(new CXFServlet(), "/webservice/*");
    }
    @Bean
    public Endpoint endpoint() {
        // å‚数二,是SEI实现类对象
        Endpoint endpoint = new EndpointImpl(bus, mesWebServiceSoap);
        // å‘布服务
        endpoint.publish("/MESWebService");
        return endpoint;
    }
}
//package org.jeecg.modules.wms.config;
//
//import org.apache.cxf.Bus;
//import org.apache.cxf.jaxws.EndpointImpl;
//import org.apache.cxf.transport.servlet.CXFServlet;
//import org.jeecg.modules.wms.service.MESWebServiceSoap;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.web.servlet.ServletRegistrationBean;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import javax.xml.ws.Endpoint;
//
//
//@Configuration
//public class WebServiceServerConfig {
//    @Autowired
//    private Bus bus;
//    @Autowired
//    private MESWebServiceSoap mesWebServiceSoap;
//
//    @Bean(name = "cxfServlet")  // æ³¨å…¥servlet bean name不能dispatcherServlet ,否则会覆盖dispatcherServlet
//    public ServletRegistrationBean<CXFServlet> cxfServlet() {
//        return new ServletRegistrationBean<>(new CXFServlet(), "/webservice/*");
//    }
//
//    @Bean
//    public Endpoint endpoint() {
//        // å‚数二,是SEI实现类对象
//        Endpoint endpoint = new EndpointImpl(bus, mesWebServiceSoap);
//        // å‘布服务
//        endpoint.publish("/MESWebService");
//
//        return endpoint;
//    }
//}
src/main/java/org/jeecg/modules/wms/controller/ReceiveWMSScanItemListController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package org.jeecg.modules.wms.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.wms.dto.MESResponse;
import org.jeecg.modules.wms.request.WMSWebServiceSendItem;
import org.jeecg.modules.wms.service.MESWebServiceSoap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "MES对外接口")
@RestController
@RequestMapping("/api/mes")
@Slf4j
public class ReceiveWMSScanItemListController {
    @Autowired
    private MESWebServiceSoap mesWebServiceSoap;
    @ApiOperation(value = "WMS集成测试-接收WMS移库结果", notes = "WMS集成测试-接收WMS移库结果")
    @PostMapping("/receiveWMSScanItemList")
    public MESResponse receiveWMSScanItemList(@RequestBody List<WMSWebServiceSendItem> list) {
        return mesWebServiceSoap.receiveWMSScanItemList(list);
    }
}
src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java
@@ -23,22 +23,6 @@
    @Autowired
    private WMSWebServiceClient webServiceClient;
    private final static String localUrl = "http://localhost:9989/webservice/MESWebService?wsdl";
    @ApiOperation(value = "WMS集成测试-接收WMS移库结果", notes = "WMS集成测试-接收WMS移库结果")
    @PostMapping("/testReceiveWMSScanItemList")
    public Result<?> testReceiveWMSScanItemList(@RequestBody List<WMSWebServiceSendItem> list) {
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        factory.setAddress(localUrl);
        factory.setServiceClass(MESWebServiceSoap.class);
        MESWebServiceSoap service = (MESWebServiceSoap) factory.create();
        ReceiveWMSScanItemList request = new ReceiveWMSScanItemList();
        request.setWmsWebServiceSendItemList(list);
        MESResponse response = service.receiveWMSScanItemList(request);
        return Result.ok(response);
    }
    @ApiOperation(value = "WMS集成测试-HelloWord测试", notes = "WMS集成测试-HelloWord测试")
    @PostMapping("/testHelloWorld")
    public Result<?> testHelloWorld() {
src/main/java/org/jeecg/modules/wms/dto/MESResponse.java
@@ -1,23 +1,14 @@
package org.jeecg.modules.wms.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
@Getter
@Setter
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MESResponse",  propOrder = {
        "errorCode",
        "errorDesc"
}, namespace = "http://xhj008.server.webservice.com/")
public class MESResponse {
    @XmlElement(name = "ErrorCode", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("ErrorCode")
    protected String errorCode;
    @XmlElement(name = "ErrorDesc", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("ErrorDesc")
    protected String errorDesc;
}
src/main/java/org/jeecg/modules/wms/dto/ReceiveWMSScanItemListResponse.java
@@ -1,18 +1,18 @@
package org.jeecg.modules.wms.dto;
import lombok.Getter;
import lombok.Setter;
import javax.xml.bind.annotation.*;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
        "receiveWMSScanItemListResult"
}, namespace = "http://xhj008.server.webservice.com/")
@XmlRootElement(name = "ReceiveWMSScanItemListResponse", namespace = "http://xhj008.server.webservice.com/")
@Getter
@Setter
public class ReceiveWMSScanItemListResponse {
    @XmlElement(name = "ReceiveWMSScanItemListResult", namespace = "http://xhj008.server.webservice.com/")
    protected MESResponse receiveWMSScanItemListResult;
}
//package org.jeecg.modules.wms.dto;
//
//import lombok.Getter;
//import lombok.Setter;
//
//import javax.xml.bind.annotation.*;
//
//@XmlAccessorType(XmlAccessType.FIELD)
//@XmlType(name = "", propOrder = {
//        "receiveWMSScanItemListResult"
//}, namespace = "http://xhj008.server.webservice.com/")
//@XmlRootElement(name = "ReceiveWMSScanItemListResponse", namespace = "http://xhj008.server.webservice.com/")
//@Getter
//@Setter
//public class ReceiveWMSScanItemListResponse {
//    @XmlElement(name = "ReceiveWMSScanItemListResult", namespace = "http://xhj008.server.webservice.com/")
//    protected MESResponse receiveWMSScanItemListResult;
//}
src/main/java/org/jeecg/modules/wms/request/ReceiveWMSScanItemList.java
@@ -1,21 +1,21 @@
package org.jeecg.modules.wms.request;
import lombok.Getter;
import lombok.Setter;
import javax.xml.bind.annotation.*;
import java.util.List;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
        "wmsWebServiceSendItemList"
}, namespace = "http://xhj008.server.webservice.com/")
@XmlRootElement(name = "ReceiveWMSScanItemList", namespace = "http://xhj008.server.webservice.com/")
@Getter
@Setter
public class ReceiveWMSScanItemList {
    @XmlElementWrapper(name = "ArrayOfWMSWebServiceSendItem", namespace = "http://xhj008.server.webservice.com/")
    @XmlElement(name = "WMSWebServiceSendItem", nillable = true, namespace = "http://xhj008.server.webservice.com/")
    protected List<WMSWebServiceSendItem> wmsWebServiceSendItemList;
}
//package org.jeecg.modules.wms.request;
//
//import lombok.Getter;
//import lombok.Setter;
//
//import javax.xml.bind.annotation.*;
//import java.util.List;
//
//@XmlAccessorType(XmlAccessType.FIELD)
//@XmlType(name = "", propOrder = {
//        "wmsWebServiceSendItemList"
//}, namespace = "http://xhj008.server.webservice.com/")
//@XmlRootElement(name = "ReceiveWMSScanItemList", namespace = "http://xhj008.server.webservice.com/")
//@Getter
//@Setter
//public class ReceiveWMSScanItemList {
//
//    @XmlElementWrapper(name = "ArrayOfWMSWebServiceSendItem", namespace = "http://xhj008.server.webservice.com/")
//    @XmlElement(name = "WMSWebServiceSendItem", nillable = true, namespace = "http://xhj008.server.webservice.com/")
//    protected List<WMSWebServiceSendItem> wmsWebServiceSendItemList;
//}
src/main/java/org/jeecg/modules/wms/request/WMSWebServiceSendItem.java
@@ -1,92 +1,68 @@
package org.jeecg.modules.wms.request;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import java.math.BigDecimal;
@Getter
@Setter
@XmlType(name = "WMSWebServiceSendItem", propOrder = {
        "factoryCode",
        "skuCode",
        "reservationOrder",
        "align",
        "pallet",
        "packageNo",
        "trackLot",
        "series",
        "mesStockID",
        "quantity",
        "sapTrackLot",
        "section",
        "destSection",
        "supplierCode",
        "supplierTrackLot",
        "stageID",
        "remark",
        "orderCode"
}, namespace = "http://xhj008.server.webservice.com/")
@XmlAccessorType(XmlAccessType.FIELD)
public class WMSWebServiceSendItem {
    /**工厂编码 */
    @XmlElement(name = "FactoryCode", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("FactoryCode")
    private String factoryCode;
    /** ç‰©æ–™ç¼–码 */
    @XmlElement(name = "SkuCode", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("SkuCode")
    private String skuCode;
    /** é¢„留号 */
    @XmlElement(name = "ReservationOrder", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("ReservationOrder")
    private String reservationOrder;
    /** MES移库单号 */
    @XmlElement(name = "Align", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Align")
    private String align;
    /** æ‰˜å· */
    @XmlElement(name = "Pallet", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Pallet")
    private String pallet;
    /** åŒ…装编码 */
    @XmlElement(name = "PackageNo", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("PackageNo")
    private String packageNo;
    /** æ‰¹æ¬¡å· */
    @XmlElement(name = "TrackLot", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("TrackLot")
    private String trackLot;
    /** ç³»åˆ—号 */
    @XmlElement(name = "Series", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Series")
    private String series;
    /** MES库存ID */
    @XmlElement(name = "MesStockID", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("MesStockID")
    private String mesStockID;
    /** æ•°é‡ */
    @XmlElement(name = "Quantity", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Quantity")
    private BigDecimal quantity;
    /** SAP批次号 */
    @XmlElement(name = "SapTrackLot", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("SapTrackLot")
    private String sapTrackLot;
    /** å‘送库存地 */
    @XmlElement(name = "Section", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Section")
    private String section;
    /** ç›®æ ‡åº“存地 */
    @XmlElement(name = "DestSection", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("DestSection")
    private String destSection;
    /** ä¾›åº”商代码 */
    @XmlElement(name = "SupplierCode", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("SupplierCode")
    private String supplierCode;
    /** ä¾›åº”商批次号 */
    @XmlElement(name = "SupplierTrackLot", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("SupplierTrackLot")
    private String supplierTrackLot;
    /** é˜¶æ®µID */
    @XmlElement(name = "StageID", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("StageID")
    private String stageID;
    /** å¤‡æ³¨ */
    @XmlElement(name = "Remark", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Remark")
    private String remark;
    /** è®¢å•编码 */
    @XmlElement(name = "OrderCode", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("OrderCode")
    private String orderCode;
}
src/main/java/org/jeecg/modules/wms/service/MESWebServiceSoap.java
@@ -1,27 +1,15 @@
package org.jeecg.modules.wms.service;
import org.jeecg.modules.wms.dto.MESResponse;
import org.jeecg.modules.wms.request.ReceiveWMSScanItemList;
import org.jeecg.modules.wms.request.WMSWebServiceSendItem;
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.util.List;
@WebService(name = "MESWebServiceSoap", targetNamespace = "http://xhj008.server.webservice.com/")
public interface MESWebServiceSoap {
    /**
     * æŽ¥æ”¶WMS移库信息
     * @param wmsWebServiceSendItemList
     * @param list
     * @return
     */
    @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/")
    MESResponse receiveWMSScanItemList(
            @WebParam(name = "wmsWebServiceSendItemList", targetNamespace = "http:/xhj008.server.webservice.com/")
            ReceiveWMSScanItemList wmsWebServiceSendItemList);
    MESResponse receiveWMSScanItemList(List<WMSWebServiceSendItem> list);
}
src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java
@@ -23,20 +23,18 @@
import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService;
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;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.jws.WebService;
import java.math.BigDecimal;
import java.util.List;
@Slf4j
@Service("MESWebServiceSoap")
@WebService(name = "MESWebServiceSoap", targetNamespace = "http://xhj008.server.webservice.com", endpointInterface = "org.jeecg.modules.wms.service.MESWebServiceSoap")
@Service
public class MESWebServiceSoapImpl implements MESWebServiceSoap {
    @Autowired
@@ -57,9 +55,9 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    @ApiLog(apiName = "接收WMS的移库信息(ReceiveWMSScanItemList(MES)", apiCategory = ApiLogCategoryEnum.WMS)
    public MESResponse receiveWMSScanItemList(ReceiveWMSScanItemList request) {
    public MESResponse receiveWMSScanItemList(List<WMSWebServiceSendItem> list) {
        MESResponse response = new MESResponse();
        if (request == null || CollectionUtil.isEmpty(request.getWmsWebServiceSendItemList())) {
        if (CollectionUtil.isEmpty(list)) {
            response.setErrorCode("N");
            response.setErrorDesc("传入的参数为空!");
            return response;
@@ -67,7 +65,7 @@
        int errorCount = 0;
        int successCount = 0;
        StringBuilder errorMsg = new StringBuilder();
        for (WMSWebServiceSendItem item : request.getWmsWebServiceSendItemList()) {
        for (WMSWebServiceSendItem item : list) {
            if (StringUtils.isNotBlank(item.getReservationOrder())) {
                //物料拉动回调
                MesMaterialTransferRequest transferRequest = materialTransferRequestService.queryByReservationCode(item.getReservationOrder());
@@ -164,6 +162,9 @@
                }
                transferOrderPrintService.updateById(transferOrder);
                successCount++;
            } else {
                errorCount++;
                errorMsg.append("移库单和预留号都为空!\n");
            }
        }
        //处理返回结果