新火炬后端单体项目初始化代码
已修改28个文件
739 ■■■■ 文件已修改
src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/cms/controller/CuttingInventoryController.java 258 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/cms/mapper/CuttingInventoryMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/cms/mapper/xml/CuttingInventoryMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/cms/service/ICuttingInventoryService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/cms/service/impl/CuttingInventoryServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/controller/MesKittingCompletenessCheckController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/controller/MesMaterialTransferRequestController.java 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/entity/MesMaterialTransferRequest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/mapper/MesKittingCompletenessCheckMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/mapper/MesMaterialLoadingMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/mapper/xml/MesKittingCompletenessCheckMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/mapper/xml/MesMaterialLoadingMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/IMesKittingCompletenessCheckService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/IMesMaterialTransferRequestService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/impl/MesKittingCompletenessCheckServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialLoadingServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialTransferRequestServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/service/impl/OrderMaterialRequestServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/WMSWebService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-prod.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java
@@ -83,6 +83,8 @@
            String productionLineId = andonResponseConfigService.getProductionLineIdByButtonId(andonOrder.getButtonId());
            if (productionLineId != null) {
                andonOrder.setFactoryId(productionLineId);
            }else{
             return Result.error("未找到对应的产线ID,请先进行安灯响应配置!");
            }
        }
        andonOrderService.save(andonOrder);
src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java
@@ -68,7 +68,7 @@
        // 设置工单状态为处理中
        andonOrder.setOrderStatus("3");
        // 获取响应者用户名
        // 获取响应用户名
        String responderUsername = andonOrder.getResponder();
        // 验证响应者用户名不为空
src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java
@@ -55,7 +55,7 @@
    @Override
    public String getProductionLineIdByButtonId(String buttonId) {
        QueryWrapper<AndonResponseConfig> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("button_id", buttonId);
        queryWrapper.eq("button_id", buttonId);  // 确保这里使用的是数据库字段名
        AndonResponseConfig config = this.getOne(queryWrapper);
        return config != null ? config.getFactoryId() : null;
    }
src/main/java/org/jeecg/modules/cms/controller/CuttingInventoryController.java
@@ -3,15 +3,11 @@
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.cms.entity.CuttingInventory;
import org.jeecg.modules.cms.service.ICuttingInventoryService;
@@ -20,141 +16,133 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
 /**
/**
 * @Description: 刀具库存
 * @Author: jeecg-boot
 * @Date:   2025-07-28
 * @Date: 2025-07-28
 * @Version: V1.0
 */
@Api(tags="刀具库存")
@Api(tags = "刀具库存")
@RestController
@RequestMapping("/cms/cuttingInventory")
@Slf4j
public class CuttingInventoryController extends JeecgController<CuttingInventory, ICuttingInventoryService> {
    @Autowired
    private ICuttingInventoryService cuttingInventoryService;
    /**
     * 分页列表查询
     *
     * @param cuttingInventory
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "刀具库存-分页列表查询")
    @ApiOperation(value="刀具库存-分页列表查询", notes="刀具库存-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<CuttingInventory>> queryPageList(CuttingInventory cuttingInventory,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<CuttingInventory> queryWrapper = QueryGenerator.initQueryWrapper(cuttingInventory, req.getParameterMap());
        Page<CuttingInventory> page = new Page<CuttingInventory>(pageNo, pageSize);
        IPage<CuttingInventory> pageList = cuttingInventoryService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
    /**
     *   添加
     *
     * @param cuttingInventory
     * @return
     */
    @AutoLog(value = "刀具库存-添加")
    @ApiOperation(value="刀具库存-添加", notes="刀具库存-添加")
    //@RequiresPermissions("org.jeecg.modules:cms_cutting_inventory:add")
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody CuttingInventory cuttingInventory) {
        cuttingInventoryService.save(cuttingInventory);
        return Result.OK("添加成功!");
    }
    /**
     *  编辑
     *
     * @param cuttingInventory
     * @return
     */
    @AutoLog(value = "刀具库存-编辑")
    @ApiOperation(value="刀具库存-编辑", notes="刀具库存-编辑")
    //@RequiresPermissions("org.jeecg.modules:cms_cutting_inventory:edit")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<String> edit(@RequestBody CuttingInventory cuttingInventory) {
        cuttingInventoryService.updateById(cuttingInventory);
        return Result.OK("编辑成功!");
    }
    /**
     *   通过id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "刀具库存-通过id删除")
    @ApiOperation(value="刀具库存-通过id删除", notes="刀具库存-通过id删除")
    //@RequiresPermissions("org.jeecg.modules:cms_cutting_inventory:delete")
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
        cuttingInventoryService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     *  批量删除
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "刀具库存-批量删除")
    @ApiOperation(value="刀具库存-批量删除", notes="刀具库存-批量删除")
    //@RequiresPermissions("org.jeecg.modules:cms_cutting_inventory:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.cuttingInventoryService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * 通过id查询
     *
     * @param id
     * @return
     */
    //@AutoLog(value = "刀具库存-通过id查询")
    @ApiOperation(value="刀具库存-通过id查询", notes="刀具库存-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<CuttingInventory> queryById(@RequestParam(name="id",required=true) String id) {
        CuttingInventory cuttingInventory = cuttingInventoryService.getById(id);
        if(cuttingInventory==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(cuttingInventory);
    }
    @Autowired
    private ICuttingInventoryService cuttingInventoryService;
    /**
    * 导出excel
    *
    * @param request
    * @param cuttingInventory
    */
     * 分页列表查询
     *
     * @param cuttingInventory
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "刀具库存-分页列表查询")
    @ApiOperation(value = "刀具库存-分页列表查询", notes = "刀具库存-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<CuttingInventory>> queryPageList(CuttingInventory cuttingInventory,
                                                         @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                                         @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                                         HttpServletRequest req) {
        QueryWrapper<CuttingInventory> queryWrapper = QueryGenerator.initQueryWrapper(cuttingInventory, req.getParameterMap());
        Page<CuttingInventory> page = new Page<CuttingInventory>(pageNo, pageSize);
        IPage<CuttingInventory> pageList = cuttingInventoryService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
    /**
     * 添加
     *
     * @param cuttingInventory
     * @return
     */
    @AutoLog(value = "刀具库存-添加")
    @ApiOperation(value = "刀具库存-添加", notes = "刀具库存-添加")
    //@RequiresPermissions("org.jeecg.modules:cms_cutting_inventory:add")
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody CuttingInventory cuttingInventory) {
        cuttingInventoryService.save(cuttingInventory);
        return Result.OK("添加成功!");
    }
    /**
     * 编辑
     *
     * @param cuttingInventory
     * @return
     */
    @AutoLog(value = "刀具库存-编辑")
    @ApiOperation(value = "刀具库存-编辑", notes = "刀具库存-编辑")
    //@RequiresPermissions("org.jeecg.modules:cms_cutting_inventory:edit")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<String> edit(@RequestBody CuttingInventory cuttingInventory) {
        cuttingInventoryService.updateById(cuttingInventory);
        return Result.OK("编辑成功!");
    }
    /**
     * 通过id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "刀具库存-通过id删除")
    @ApiOperation(value = "刀具库存-通过id删除", notes = "刀具库存-通过id删除")
    //@RequiresPermissions("org.jeecg.modules:cms_cutting_inventory:delete")
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
        cuttingInventoryService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     * 批量删除
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "刀具库存-批量删除")
    @ApiOperation(value = "刀具库存-批量删除", notes = "刀具库存-批量删除")
    //@RequiresPermissions("org.jeecg.modules:cms_cutting_inventory:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
        this.cuttingInventoryService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * 通过id查询
     *
     * @param id
     * @return
     */
    //@AutoLog(value = "刀具库存-通过id查询")
    @ApiOperation(value = "刀具库存-通过id查询", notes = "刀具库存-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<CuttingInventory> queryById(@RequestParam(name = "id", required = true) String id) {
        CuttingInventory cuttingInventory = cuttingInventoryService.getById(id);
        if (cuttingInventory == null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(cuttingInventory);
    }
    /**
     * 导出excel
     *
     * @param request
     * @param cuttingInventory
     */
    //@RequiresPermissions("org.jeecg.modules:cms_cutting_inventory:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, CuttingInventory cuttingInventory) {
@@ -162,16 +150,30 @@
    }
    /**
      * 通过excel导入数据
    *
    * @param request
    * @param response
    * @return
    */
     * 通过excel导入数据
     *
     * @param request
     * @param response
     * @return
     */
    //@RequiresPermissions("cms_cutting_inventory:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, CuttingInventory.class);
    }
    /**
     * 刀具库存统计
     */
    @ApiOperation(value = "刀具库存-统计分页查询", notes = "刀具库存-统计分页查询")
    @GetMapping(value = "/statistics")
    public Result<IPage<Map<String, Object>>> statistics(
            @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
            @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
        Page<Map<String, Object>> page = new Page<>(pageNo, pageSize);
        IPage<Map<String, Object>> pageList = cuttingInventoryService.statisticsByCuttingIdAndStatus(page);
        return Result.OK(pageList);
    }
}
src/main/java/org/jeecg/modules/cms/mapper/CuttingInventoryMapper.java
@@ -1,8 +1,9 @@
package org.jeecg.modules.cms.mapper;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.cms.entity.CuttingInventory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -13,5 +14,4 @@
 * @Version: V1.0
 */
public interface CuttingInventoryMapper extends BaseMapper<CuttingInventory> {
}
    IPage<Map<String, Object>> statisticsByCuttingIdAndStatus(Page<Map<String, Object>> page);}
src/main/java/org/jeecg/modules/cms/mapper/xml/CuttingInventoryMapper.xml
@@ -1,5 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.cms.mapper.CuttingInventoryMapper">
    <select id="statisticsByCuttingIdAndStatus" resultType="map">
        SELECT
            t1.cutting_id as cuttingId,
            count(*) AS cuttingIdNumber,
            t1.inventory_status as inventoryStatus,
            t2.cutting_code AS cuttingCode
        FROM
            cms_cutting_inventory t1
        LEFT JOIN cms_cutting_tool t2 ON t1.cutting_id = t2.id AND t2.del_flag = 0
        GROUP BY cutting_id, inventory_status, cutting_code
    </select>
</mapper>
src/main/java/org/jeecg/modules/cms/service/ICuttingInventoryService.java
@@ -1,7 +1,12 @@
package org.jeecg.modules.cms.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.cms.entity.CuttingInventory;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
 * @Description: 刀具库存
@@ -11,4 +16,6 @@
 */
public interface ICuttingInventoryService extends IService<CuttingInventory> {
    IPage<Map<String, Object>> statisticsByCuttingIdAndStatus(Page<Map<String, Object>> page);
}
src/main/java/org/jeecg/modules/cms/service/impl/CuttingInventoryServiceImpl.java
@@ -1,11 +1,21 @@
package org.jeecg.modules.cms.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.cms.entity.CuttingInventory;
import org.jeecg.modules.cms.mapper.CuttingInventoryMapper;
import org.jeecg.modules.cms.mapper.CuttingToolMapper;
import org.jeecg.modules.cms.service.ICuttingInventoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
/**
 * @Description: 刀具库存
@@ -15,5 +25,9 @@
 */
@Service
public class CuttingInventoryServiceImpl extends ServiceImpl<CuttingInventoryMapper, CuttingInventory> implements ICuttingInventoryService {
    @Override
    public IPage<Map<String, Object>> statisticsByCuttingIdAndStatus(Page<Map<String, Object>> page) {        // 执行分页统计查询
        IPage<Map<String, Object>> result = baseMapper.statisticsByCuttingIdAndStatus(page);
        return result;
    }
}
src/main/java/org/jeecg/modules/mes/controller/MesKittingCompletenessCheckController.java
@@ -21,6 +21,7 @@
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @Description: 齐套性检查记录
@@ -52,9 +53,10 @@
                                  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                  HttpServletRequest req) {
       QueryWrapper<MesKittingCompletenessCheck> queryWrapper = QueryGenerator.initQueryWrapper(mesKittingCompletenessCheck, req.getParameterMap());
       Map<String, String[]> parameterMap = req.getParameterMap();
       QueryWrapper<MesKittingCompletenessCheck> queryWrapper = QueryGenerator.initQueryWrapper(mesKittingCompletenessCheck, parameterMap);
       Page<MesKittingCompletenessCheck> page = new Page<MesKittingCompletenessCheck>(pageNo, pageSize);
       IPage<MesKittingCompletenessCheck> pageList = mesKittingCompletenessCheckService.page(page, queryWrapper);
       IPage<MesKittingCompletenessCheck> pageList = mesKittingCompletenessCheckService.queryPageList(page, parameterMap);
       return Result.OK(pageList);
   }
src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java
@@ -19,6 +19,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.Map;
/**
* @Description: 上料
@@ -50,9 +51,10 @@
                                  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                  HttpServletRequest req) {
       QueryWrapper<MesMaterialLoading> queryWrapper = QueryGenerator.initQueryWrapper(mesMaterialLoading, req.getParameterMap());
       Map<String, String[]> parameterMap = req.getParameterMap();
       QueryWrapper<MesMaterialLoading> queryWrapper = QueryGenerator.initQueryWrapper(mesMaterialLoading, parameterMap);
       Page<MesMaterialLoading> page = new Page<MesMaterialLoading>(pageNo, pageSize);
       IPage<MesMaterialLoading> pageList = mesMaterialLoadingService.page(page, queryWrapper);
       IPage<MesMaterialLoading> pageList = mesMaterialLoadingService.queryPageList(page, parameterMap);
       return Result.OK(pageList);
   }
src/main/java/org/jeecg/modules/mes/controller/MesMaterialTransferRequestController.java
@@ -6,21 +6,21 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.mes.entity.MesMaterialTransferRequest;
import org.jeecg.modules.mes.enums.MaterialTransferPublishStatus;
import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
/**
 * @Description: 物料拉动申请
@@ -73,7 +73,7 @@
        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MATERIAL_TRANSFER_CODE_RULE);
        request.setRequestCode(codeSeq);
        boolean b = mesMaterialTransferRequestService.addMaterialTransferRequest(request);
        if(!b) {
        if (!b) {
            return Result.error("添加失败!");
        }
        return Result.OK("添加成功!");
@@ -87,7 +87,6 @@
     */
    @AutoLog(value = "物料拉动申请-编辑")
    @ApiOperation(value = "物料拉动申请-编辑", notes = "物料拉动申请-编辑")
    //@RequiresPermissions("org.jeecg.modules:mes_material_transfer_request:edit")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<String> edit(@RequestBody MesMaterialTransferRequest mesMaterialTransferRequest) {
        mesMaterialTransferRequestService.updateById(mesMaterialTransferRequest);
@@ -102,11 +101,18 @@
     */
    @AutoLog(value = "物料拉动申请-通过id删除")
    @ApiOperation(value = "物料拉动申请-通过id删除", notes = "物料拉动申请-通过id删除")
    //@RequiresPermissions("org.jeecg.modules:mes_material_transfer_request:delete")
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
        mesMaterialTransferRequestService.removeById(id);
        return Result.OK("删除成功!");
        MesMaterialTransferRequest entity = mesMaterialTransferRequestService.getById(id);
        if (entity == null) {
            return Result.error("删除的数据不存在,请刷新重试!");
        }
        if (!MaterialTransferPublishStatus.WAIT_PUBLISH.name().equals(entity.getPublishStatus())) {
            return Result.error("数据已发布,无法删除!");
        }
        entity.setDelFlag(CommonConstant.DEL_FLAG_1);
        mesMaterialTransferRequestService.updateById(entity);
        return Result.OK("删除成功!");
    }
    /**
@@ -117,10 +123,21 @@
     */
    @AutoLog(value = "物料拉动申请-批量删除")
    @ApiOperation(value = "物料拉动申请-批量删除", notes = "物料拉动申请-批量删除")
    //@RequiresPermissions("org.jeecg.modules:mes_material_transfer_request:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
        this.mesMaterialTransferRequestService.removeByIds(Arrays.asList(ids.split(",")));
        if (StringUtils.isBlank(ids)) {
            return Result.error("参数错误!");
        }
        String[] split = ids.split(",");
        for (String id : split) {
            MesMaterialTransferRequest entity = mesMaterialTransferRequestService.getById(id);
            if (entity == null || !MaterialTransferPublishStatus.WAIT_PUBLISH.name().equals(entity.getPublishStatus())) {
                //不做处理
                continue;
            }
            entity.setDelFlag(CommonConstant.DEL_FLAG_1);
            mesMaterialTransferRequestService.updateById(entity);
        }
        return Result.OK("批量删除成功!");
    }
@@ -142,28 +159,93 @@
    }
    /**
     * 导出excel
     *  通过id发布
     *
     * @param request
     * @param mesMaterialTransferRequest
     * @param id
     * @return
     */
    //@RequiresPermissions("org.jeecg.modules:mes_material_transfer_request:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, MesMaterialTransferRequest mesMaterialTransferRequest) {
        return super.exportXls(request, mesMaterialTransferRequest, MesMaterialTransferRequest.class, "物料拉动申请");
    @AutoLog(value = "物料拉动申请-发布")
    @ApiOperation(value = "物料拉动申请-发布", notes = "物料拉动申请-发布")
    @PutMapping(value = "/publish")
    public Result<String> publish(@RequestParam(name = "id", required = true) String id) {
        boolean b = mesMaterialTransferRequestService.publish(id);
        if (!b) {
            return Result.error("发布失败!");
        }
        return Result.OK("发布成功!");
    }
    /**
     * 通过excel导入数据
     *  批量发布
     *
     * @param request
     * @param response
     * @param ids
     * @return
     */
    //@RequiresPermissions("mes_material_transfer_request:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, MesMaterialTransferRequest.class);
    @AutoLog(value = "物料拉动申请-批量发布")
    @ApiOperation(value = "物料拉动申请-批量发布", notes = "物料拉动申请-批量发布")
    @PutMapping(value = "/publishBatch")
    public Result<String> publishBatch(@RequestParam(name = "ids", required = true) String ids) {
        if (StringUtils.isBlank(ids)) {
            return Result.error("参数错误!");
        }
        String[] split = ids.split(",");
        int count = 0;
        for (String id : split) {
            try {
                boolean b = mesMaterialTransferRequestService.publish(id);
                if(b) {
                    count++;
                }
            } catch (Exception e) {
                log.error(e.getMessage(), e);
            }
        }
        return Result.OK("成功发布" + count + "条数据!");
    }
    /**
     *  通过id请求WMS
     *
     * @param id
     * @return
     */
    @AutoLog(value = "物料拉动申请-请求WMS")
    @ApiOperation(value = "物料拉动申请-请求WMS", notes = "物料拉动申请-请求WMS")
    @PutMapping(value = "/request")
    public Result<String> request(@RequestParam(name = "id", required = true) String id) {
        boolean b = mesMaterialTransferRequestService.request(id);
        if (!b) {
            return Result.error("请求失败!");
        }
        return Result.OK("请求成功!");
    }
    /**
     *  批量请求WMS
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "物料拉动申请-批量请求WMS")
    @ApiOperation(value = "物料拉动申请-批量请求WMS", notes = "物料拉动申请-批量请求WMS")
    @PutMapping(value = "/requestBatch")
    public Result<String> requestBatch(@RequestParam(name = "ids", required = true) String ids) {
        if (StringUtils.isBlank(ids)) {
            return Result.error("参数错误!");
        }
        String[] split = ids.split(",");
        int count = 0;
        for (String id : split) {
            try {
                boolean b = mesMaterialTransferRequestService.request(id);
                if(b) {
                    count++;
                }
            } catch (Exception e) {
                log.error(e.getMessage(), e);
            }
        }
        return Result.OK("成功请求WMS" + count + "条数据!");
    }
    /*
src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java
@@ -94,4 +94,7 @@
    @TableField(exist = false)
    @ApiModelProperty(value = "工单号")
    private String workOrderCode;
    @TableField(exist = false)
    @ApiModelProperty(value = "设备名称")
    private String equipmentName;
}
src/main/java/org/jeecg/modules/mes/entity/MesMaterialTransferRequest.java
@@ -1,6 +1,9 @@
package org.jeecg.modules.mes.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -8,10 +11,10 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
@@ -105,8 +108,8 @@
    private String materialName;
    /**理论拉动数量*/
    @ApiModelProperty(value = "理论拉动数量")
    private Double specifiedQuantity;
    private BigDecimal specifiedQuantity;
    /**实际拉动数量*/
    @ApiModelProperty(value = "实际拉动数量")
    private Double actualQuantity;
    private BigDecimal actualQuantity;
}
src/main/java/org/jeecg/modules/mes/mapper/MesKittingCompletenessCheckMapper.java
@@ -1,6 +1,11 @@
package org.jeecg.modules.mes.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mes.entity.MesKittingCompletenessCheck;
@@ -14,4 +19,7 @@
 */
public interface MesKittingCompletenessCheckMapper extends BaseMapper<MesKittingCompletenessCheck> {
    List<MesKittingCompletenessCheck> queryCompletenessCheckByWorkOrderId(@Param("workOrderId") String workOrderId);
    IPage<MesKittingCompletenessCheck> queryPageList(Page<MesKittingCompletenessCheck> page,
                                                     @Param(Constants.WRAPPER) Wrapper<MesKittingCompletenessCheck> queryWrapper);
}
src/main/java/org/jeecg/modules/mes/mapper/MesMaterialLoadingMapper.java
@@ -1,6 +1,11 @@
package org.jeecg.modules.mes.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mes.entity.MesMaterialLoading;
import org.jeecg.modules.mes.entity.MesMaterialUnloading;
@@ -16,4 +21,7 @@
public interface MesMaterialLoadingMapper extends BaseMapper<MesMaterialLoading> {
    List<MesMaterialUnloading> queryUnloadingByLoadingId(@Param("loadingId") String loadingId);
    List<MesMaterialLoading> queryLoadingByWorkOrderId(@Param("workOrderId") String workOrderId);
    IPage<MesMaterialLoading> queryPageList(Page<MesMaterialLoading> page,
                                            @Param(Constants.WRAPPER) Wrapper<MesMaterialLoading> queryWrapper);
}
src/main/java/org/jeecg/modules/mes/mapper/xml/MesKittingCompletenessCheckMapper.xml
@@ -6,4 +6,12 @@
                 left join mes_production_work_order mpwo on mkcc.work_order_id = mpwo.id
                 where mkcc.work_order_id = #{workOrderId}
    </select>
    <select id="queryPageList" resultType="org.jeecg.modules.mes.entity.MesKittingCompletenessCheck">
        SELECT
            t1.*,
            t2.work_order_code workOrderCode
        FROM mes_kitting_completeness_check t1
        LEFT JOIN mes_production_work_order t2 ON t1.work_order_id = t2.id
        ${ew.customSqlSegment}
    </select>
</mapper>
src/main/java/org/jeecg/modules/mes/mapper/xml/MesMaterialLoadingMapper.xml
@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mes.mapper.MesMaterialLoadingMapper">
    <select id="queryUnloadingByLoadingId" resultType="org.jeecg.modules.mes.entity.MesMaterialUnloading">
        select * from mes_material_unloading where loading_id = #{loadingId} and del_flag = 0
        select * from mes_material_unloading where loading_id = #{loadingId} and del_flag = 0 order by create_time desc
    </select>
    <select id="queryLoadingByWorkOrderId" resultType="org.jeecg.modules.mes.entity.MesMaterialLoading">
        select mml.* ,mpwo.work_order_code as workOrderCode
@@ -11,4 +11,14 @@
        where mml.work_order_id = #{workOrderId}
          and mml.del_flag = 0
    </select>
    <select id="queryPageList" resultType="org.jeecg.modules.mes.entity.MesMaterialLoading">
        SELECT
            t1.*,
            t2.work_order_code workOrderCode,
            t3.equipment_name equipmentName
        FROM mes_material_loading t1
        LEFT JOIN mes_production_work_order t2 ON t1.work_order_id = t2.id
        LEFT JOIN eam_equipment t3 ON t1.equipment_id = t3.id
        ${ew.customSqlSegment}
    </select>
</mapper>
src/main/java/org/jeecg/modules/mes/service/IMesKittingCompletenessCheckService.java
@@ -1,9 +1,12 @@
package org.jeecg.modules.mes.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mes.entity.MesKittingCompletenessCheck;
import java.util.List;
import java.util.Map;
/**
 * @Description: 齐套性检查记录
@@ -15,4 +18,6 @@
    List<MesKittingCompletenessCheck> queryCompletenessCheckByWorkOrderId(String workOrderId);
    void batchSave(List<MesKittingCompletenessCheck> mesKittingCompletenessCheckList);
    IPage<MesKittingCompletenessCheck> queryPageList(Page<MesKittingCompletenessCheck> page, Map<String, String[]> parameterMap);
}
src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java
@@ -1,10 +1,13 @@
package org.jeecg.modules.mes.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mes.entity.MesMaterialLoading;
import org.jeecg.modules.mes.entity.MesMaterialUnloading;
import java.util.List;
import java.util.Map;
/**
 * @Description: 上料
@@ -15,4 +18,6 @@
public interface IMesMaterialLoadingService extends IService<MesMaterialLoading> {
    List<MesMaterialUnloading> queryUnloadingByLoadingId(String loadingId);
    List<MesMaterialLoading> queryLoadingByWorkOrderId(String workOrderId);
    IPage<MesMaterialLoading> queryPageList(Page<MesMaterialLoading> page, Map<String, String[]> parameterMap);
}
src/main/java/org/jeecg/modules/mes/service/IMesMaterialTransferRequestService.java
@@ -19,4 +19,25 @@
     * @param request
     */
    boolean addMaterialTransferRequest(MesMaterialTransferRequest request);
    /**
     * 发布,调用SAP获取预留号
     * @param id
     * @return
     */
    boolean publish(String id);
    /**
     * 请求WMS
     * @param id
     * @return
     */
    boolean request(String id);
    /**
     * 根据预留号获取物料拉动信息
     * @param reservationCode
     * @return
     */
    MesMaterialTransferRequest queryByReservationCode(String reservationCode);
}
src/main/java/org/jeecg/modules/mes/service/impl/MesKittingCompletenessCheckServiceImpl.java
@@ -1,5 +1,9 @@
package org.jeecg.modules.mes.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.jeecg.common.constant.CommonConstant;
import org.jeecg.modules.mes.entity.MesKittingCompletenessCheck;
@@ -11,6 +15,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
/**
 * @Description: 齐套性检查记录
@@ -44,4 +49,31 @@
        //保存齐套检查记录
        saveBatch(mesKittingCompletenessCheckList);
    }
    @Override
    public IPage<MesKittingCompletenessCheck> queryPageList(Page<MesKittingCompletenessCheck> page, Map<String, String[]> parameterMap) {
        QueryWrapper<MesKittingCompletenessCheck> queryWrapper = Wrappers.query();
        String[] factoryIds = parameterMap.get("factoryId");
        if (factoryIds != null && factoryIds.length > 0) {
            queryWrapper.eq("t2.factory_id", factoryIds[0]);
        }
        String[] workOrderIds = parameterMap.get("workOrderId");
        if (workOrderIds != null && workOrderIds.length > 0) {
            queryWrapper.eq("t1.work_order_id", workOrderIds[0]);
        }
        String[] materialNumbers = parameterMap.get("materialNumber");
        if (materialNumbers != null && materialNumbers.length > 0) {
            queryWrapper.like("t1.material_number", materialNumbers[0]);
        }
        String[] materialNames = parameterMap.get("materialName");
        if (materialNames != null && materialNames.length > 0) {
            queryWrapper.like("t1.material_name", materialNames[0]);
        }
        String[] checkFlags = parameterMap.get("checkFlag");
        if (checkFlags != null && checkFlags.length > 0) {
            queryWrapper.eq("t1.check_flag", checkFlags[0]);
        }
        queryWrapper.orderByDesc("t1.create_time");
        return this.baseMapper.queryPageList(page, queryWrapper);
    }
}
src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialLoadingServiceImpl.java
@@ -1,5 +1,9 @@
package org.jeecg.modules.mes.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.jeecg.modules.mes.entity.MesMaterialLoading;
import org.jeecg.modules.mes.entity.MesMaterialUnloading;
@@ -8,6 +12,7 @@
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * @Description: 上料
@@ -27,4 +32,35 @@
    public List<MesMaterialLoading> queryLoadingByWorkOrderId(String workOrderId) {
        return baseMapper.queryLoadingByWorkOrderId(workOrderId);
    }
    @Override
    public IPage<MesMaterialLoading> queryPageList(Page<MesMaterialLoading> page, Map<String, String[]> parameterMap) {
        QueryWrapper<MesMaterialLoading> queryWrapper = Wrappers.query();
        String[] factoryIds = parameterMap.get("factoryId");
        if (factoryIds != null && factoryIds.length > 0) {
            queryWrapper.eq("t2.factory_id", factoryIds[0]);
        }
        String[] workOrderIds = parameterMap.get("workOrderId");
        if (workOrderIds != null && workOrderIds.length > 0) {
            queryWrapper.eq("t1.work_order_id", workOrderIds[0]);
        }
        String[] materialNumbers = parameterMap.get("materialNumber");
        if (materialNumbers != null && materialNumbers.length > 0) {
            queryWrapper.like("t1.material_number", materialNumbers[0]);
        }
        String[] materialNames = parameterMap.get("materialName");
        if (materialNames != null && materialNames.length > 0) {
            queryWrapper.like("t1.material_name", materialNames[0]);
        }
        String[] batchNumbers = parameterMap.get("batchNumber");
        if (batchNumbers != null && batchNumbers.length > 0) {
            queryWrapper.like("t1.batch_number", batchNumbers[0]);
        }
        String[] equipmentIds = parameterMap.get("equipmentId");
        if (equipmentIds != null && equipmentIds.length > 0) {
            queryWrapper.eq("t1.equipment_id", equipmentIds[0]);
        }
        queryWrapper.orderByDesc("t1.create_time");
        return this.baseMapper.queryPageList(page, queryWrapper);
    }
}
src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialTransferRequestServiceImpl.java
@@ -1,8 +1,12 @@
package org.jeecg.modules.mes.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.modules.base.entity.LineSideWarehouse;
import org.jeecg.modules.base.service.ILineSideWarehouseService;
import org.jeecg.modules.mes.entity.MesMaterialTransferRequest;
import org.jeecg.modules.mes.entity.MesProductionWorkOrder;
import org.jeecg.modules.mes.enums.MaterialTransferPublishStatus;
@@ -11,16 +15,22 @@
import org.jeecg.modules.mes.mapper.MesMaterialTransferRequestMapper;
import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService;
import org.jeecg.modules.mes.service.IMesProductionWorkOrderService;
import org.jeecg.modules.sap.dto.MaterialRequestDTO;
import org.jeecg.modules.sap.request.MaterialRequest;
import org.jeecg.modules.sap.service.OrderMaterialRequestService;
import org.jeecg.modules.wms.dto.WSResponse;
import org.jeecg.modules.wms.request.WebReservationOrder;
import org.jeecg.modules.wms.service.WMSWebServiceClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.*;
/**
 * @Description: 物料拉动申请
 * @Author: jeecg-boot
 * @Date:   2025-07-04
 * @Date: 2025-07-04
 * @Version: V1.0
 */
@Service
@@ -28,6 +38,12 @@
    @Autowired
    private IMesProductionWorkOrderService productionWorkOrderService;
    @Autowired
    private OrderMaterialRequestService orderMaterialRequestService;
    @Autowired
    private ILineSideWarehouseService lineSideWarehouseService;
    @Autowired
    private WMSWebServiceClient wmsWebServiceClient;
    @Override
    public List<MesMaterialTransferRequest> queryMaterialTransferRequestByWorkOrderId(String workOrderId) {
@@ -38,10 +54,10 @@
    @Transactional(rollbackFor = Exception.class)
    public boolean addMaterialTransferRequest(MesMaterialTransferRequest request) {
        MesProductionWorkOrder order = productionWorkOrderService.getById(request.getWorkOrderId());
        if(order == null){
        if (order == null) {
            throw new JeecgBootException("排产工单不存在");
        }
        if(!ProductionWorkOrderStatus.PUBLISHED.name().equals(order.getWorkOrderStatus())){
        if (!ProductionWorkOrderStatus.PUBLISHED.name().equals(order.getWorkOrderStatus())) {
            throw new JeecgBootException("只有发布状态的排产工单才可申请物料");
        }
        request.setPublishStatus(MaterialTransferPublishStatus.WAIT_PUBLISH.name());
@@ -50,4 +66,76 @@
        this.getBaseMapper().insert(request);
        return true;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean publish(String id) {
        MesMaterialTransferRequest entity = super.getById(id);
        if (entity == null) {
            throw new JeecgBootException("数据不存在,请刷新重试!");
        }
        if (!MaterialTransferPublishStatus.WAIT_PUBLISH.name().equals(entity.getPublishStatus())) {
            throw new JeecgBootException("数据已发布!");
        }
        LineSideWarehouse warehouse = lineSideWarehouseService.getById(entity.getTargetWarehouseId());
        if (warehouse == null) {
            throw new JeecgBootException("线边库不存在!");
        }
        MaterialRequest request = new MaterialRequest();
        request.setMaterialNumber(entity.getMaterialNumber());
        request.setQuantity(request.getQuantity());
        request.setWarehouseCode(entity.getOriginalWarehouseId());
        try {
            Map<String, Object> response = orderMaterialRequestService.orderMaterialRequest("2301", warehouse.getWarehouseCode(), Collections.singletonList(request));
            Object ztype = response.get("ztype");
            if (!"S".equals(ztype)) {
                throw new JeecgBootException("调用SAP请求预留号失败!" + response.get("zmess"));
            }
            MaterialRequestDTO result = (MaterialRequestDTO) response.get("result");
            entity.setReservationCode(result.getO_SAP_RESV());
            entity.setPublishStatus(MaterialTransferPublishStatus.PUBLISHED.name());
            entity.setPublishTime(new Date());
            super.updateById(entity);
            return true;
        } catch (Exception e) {
            throw new JeecgBootException("调用SAP请求预留号失败!");
        }
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean request(String id) {
        MesMaterialTransferRequest entity = super.getById(id);
        if (entity == null) {
            throw new JeecgBootException("数据不存在,请刷新重试!");
        }
        if (!MaterialTransferPublishStatus.PUBLISHED.name().equals(entity.getPublishStatus()) || !MaterialTransferRequestStatus.WAIT_REQUEST.name().equals(entity.getRequestStatus())) {
            throw new JeecgBootException("数据状态不可请求WMS!");
        }
        WebReservationOrder request = new WebReservationOrder();
        request.setFactoryCode("2301");
        request.setReservationOrder(entity.getReservationCode());
        request.setTotal(entity.getSpecifiedQuantity());
        Map<String, Object> resultMap = wmsWebServiceClient.receiveReservation(request);
        WSResponse result = (WSResponse) resultMap.get("result");
        if ("Y".equals(result.getErrorCode())) {
            entity.setRequestStatus(MaterialTransferRequestStatus.REQUESTED.name());
            entity.setRequestTime(new Date());
            super.updateById(entity);
            return true;
        }
        return false;
    }
    @Override
    public MesMaterialTransferRequest queryByReservationCode(String reservationCode) {
        LambdaQueryWrapper<MesMaterialTransferRequest> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(MesMaterialTransferRequest::getReservationCode, reservationCode);
        queryWrapper.eq(MesMaterialTransferRequest::getDelFlag, CommonConstant.DEL_FLAG_0);
        List<MesMaterialTransferRequest> list = super.list(queryWrapper);
        if (CollectionUtil.isNotEmpty(list)) {
            return list.get(0);
        }
        return null;
    }
}
src/main/java/org/jeecg/modules/sap/service/impl/OrderMaterialRequestServiceImpl.java
@@ -82,7 +82,7 @@
        MaterialRequestDTO response = new MaterialRequestDTO();
        String zmess = function.getExportParameterList().getValue("O_IS_OK").toString();
        String ztype = function.getExportParameterList().getValue("O_MESSAGE").toString();//S 标识 成功
        String resv = function.getExportParameterList().getValue("O_SAP_RESV").toString();//S 标识 成功
        String resv = function.getExportParameterList().getValue("O_SAP_RESV").toString();
        response.setO_IS_OK(ztype);
        response.setO_MESSAGE(zmess);
        response.setO_SAP_RESV(resv);
src/main/java/org/jeecg/modules/wms/WMSWebService.java
@@ -64,9 +64,6 @@
        super(wsdlLocation, serviceName, features);
    }
    /**
     *
     * @return
src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java
@@ -23,7 +23,7 @@
    @Autowired
    private WMSWebServiceClient webServiceClient;
    private final static String localUrl = "http://localhost:9989/ebservice/ReceiveWMSScanItemList?wsdl";
    private final static String localUrl = "http://localhost:9989/webservice/MESWebService?wsdl";
    @ApiOperation(value = "WMS集成测试-接收WMS移库结果", notes = "WMS集成测试-接收WMS移库结果")
src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java
@@ -1,12 +1,19 @@
package org.jeecg.modules.wms.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.aspect.annotation.ApiLog;
import org.jeecg.common.constant.ApiLogCategoryEnum;
import org.jeecg.modules.mes.entity.MesMaterialTransferRequest;
import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService;
import org.jeecg.modules.wms.dto.WSResponse;
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.WebMethod;
import javax.jws.WebParam;
@@ -21,17 +28,36 @@
@WebService(name = "MESWebServiceSoap", targetNamespace = "http://xhj008.server.webservice.com", endpointInterface = "org.jeecg.modules.wms.service.MESWebServiceSoap")
public class MESWebServiceSoapImpl implements MESWebServiceSoap {
    @Autowired
    private IMesMaterialTransferRequestService materialTransferRequestService;
    @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) {
        log.error("11111111111");
        WSResponse response = new WSResponse();
        response.setErrorCode("-1");
        response.setErrorDesc("我时结果集");
        if (request == null || CollectionUtil.isEmpty(request.getWmsWebServiceSendItemList())) {
            response.setErrorCode("N");
            response.setErrorDesc("传入的参数为空!");
            return response;
        }
        for(WMSWebServiceSendItem item : request.getWmsWebServiceSendItemList()) {
            if(StringUtils.isNotBlank(item.getReservationOrder())) {
                //物料拉动回调
                MesMaterialTransferRequest transferRequest = materialTransferRequestService.queryByReservationCode(item.getReservationOrder());
                if(transferRequest == null) {
                    response.setErrorCode("N");
                    response.setErrorDesc("根据预留号未找到物料拉动单!");
                    return response;
                }
            }else if(StringUtils.isNotBlank(item.getAlign())){
                //移库单回调
            }
        }
        return response;
    }
}
src/main/resources/application-prod.yml
@@ -132,16 +132,16 @@
        connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
      datasource:
        master:
          url: jdbc:sqlserver://localhost:1433;databasename=LXZN_TEST_XHJ
          url: jdbc:sqlserver://10.210.199.2:1433;databasename=LXZN_MDC_XHJ
          username: sa
          password: 123
          password: Lxzn1688
          driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
  #redis 配置
  redis:
    database: 0
    host: 127.0.0.1
    port: 6379
    password:
    password: '1qaz@WSX'
#mybatis plus 设置
mybatis-plus:
  mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml