新火炬后端单体项目初始化代码
cuilei
2 天以前 fe891f627a483eb6298f12eca60cf7f274e31c88
Merge remote-tracking branch 'origin/master'
已添加3个文件
已修改22个文件
669 ■■■■ 文件已修改
.gitignore 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/common/aspect/ApiLogAspect.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/controller/AndonResponseConfigController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/dto/AndonOrdeDto.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/IAndonResponseConfigService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/base/service/impl/FactoryServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/feishu/service/FeishuUserService.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/WMSWebService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/dto/WSResponse.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/WMSWebServiceClient.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/WebServiceSoap.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/impl/WMSWebServiceClientImpl.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -13,3 +13,4 @@
os_del_doc.cmd
.svn
derby.log
.gitignore
src/main/java/org/jeecg/common/aspect/ApiLogAspect.java
@@ -4,7 +4,6 @@
import com.alibaba.fastjson.parser.Feature;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sap.conn.jco.*;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
@@ -83,6 +82,13 @@
                    break;
                case WMS:
                    dto.setRequestMethod("Webservice");
                    if (result instanceof Map) {
                        Map<String, Object> map = (Map<String, Object>) result;
                        dto.setResponseCode(map.get("ztype").toString());
                        dto.setResponseMessage(map.get("zmess").toString());
                        dto.setRequestBody(map.get("importParameters") == null ? null : map.get("importParameters").toString());
                        dto.setResponseBody(parseSAPResponseResult(map.get("result")));
                    }
                    break;
                case FEI_SHU:
                    dto.setRequestMethod("Http");
@@ -146,6 +152,8 @@
            } catch (JsonProcessingException e) {
                throw new JeecgBootException(e);
            }
        } else if (result instanceof String) {
            return result.toString();
        } else {
            try {
                String json = objectMapper.writeValueAsString(result);
src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java
@@ -11,6 +11,7 @@
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.andon.dto.AndonButtonDTO;
import org.jeecg.modules.andon.dto.AndonOrdeDto;
import org.jeecg.modules.andon.entity.AndonButtonConfig;
import org.jeecg.modules.andon.service.IAndonButtonConfigService;
import org.jeecg.modules.andon.service.impl.AndonOrderServiceImpl;
@@ -84,8 +85,8 @@
     */
    @ApiOperation(value = "安灯发起-分页列表查询", notes = "安灯发起-分页列表查询")
    @GetMapping(value = "/queryUserAndonCallList")
    public Result<List<AndonButtonDTO>> queryUserAndonCallList(@RequestParam("factoryId") String factoryId) {
        List<AndonButtonDTO> list = andonButtonConfigService.queryUserAndonCallList(factoryId);
    public Result<List<AndonOrdeDto>> queryUserAndonCallList(@RequestParam("factoryId") String factoryId, @RequestParam("orderStatus") String orderStatus) {
        List<AndonOrdeDto> list = andonButtonConfigService.queryUserAndonCallList(factoryId,orderStatus);
        return Result.OK(list);
    }
@@ -97,8 +98,8 @@
     */
    @ApiOperation(value = "安灯响应-分页列表查询", notes = "安灯响应-分页列表查询")
    @GetMapping(value = "/queryUserAndonRespondList")
    public Result<List<AndonButtonDTO>> queryUserAndonRespondList(@RequestParam("factoryId") String factoryId) {
        List<AndonButtonDTO> list = andonButtonConfigService.queryUserAndonRespondList(factoryId);
    public Result<List<AndonOrdeDto>> queryUserAndonRespondList(@RequestParam("factoryId") String factoryId, @RequestParam("orderStatus") String orderStatus) {
        List<AndonOrdeDto> list = andonButtonConfigService.queryUserAndonRespondList(factoryId,orderStatus);
        return Result.OK(list);
    }
@@ -110,8 +111,8 @@
     */
    @ApiOperation(value = "安灯响应-分页列表查询", notes = "安灯响应-分页列表查询")
    @GetMapping(value = "/queryUserAndonHandelList")
    public Result<List<AndonButtonDTO>> queryUserAndonHandelList(@RequestParam("factoryId") String factoryId) {
        List<AndonButtonDTO> list = andonButtonConfigService.queryUserAndonHandelList(factoryId);
    public Result<List<AndonOrdeDto>> queryUserAndonHandelList(@RequestParam("factoryId") String factoryId ,@RequestParam("orderStatus") String orderStatus) {
        List<AndonOrdeDto> list = andonButtonConfigService.queryUserAndonHandelList(factoryId,orderStatus);
        return Result.OK(list);
    }
    /**
src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java
@@ -6,12 +6,16 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.andon.dto.AndonOrdeDto;
import org.jeecg.modules.andon.entity.AndonOrder;
import org.jeecg.modules.andon.service.IAndonOrderService;
import org.jeecg.modules.andon.service.IAndonResponseConfigService;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +24,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.Date;
import java.util.Arrays;
/**
@@ -37,6 +42,8 @@
    private IAndonOrderService andonOrderService;
    @Autowired
    private IAndonResponseConfigService andonResponseConfigService;
    /**
     * åˆ†é¡µåˆ—表查询
@@ -71,21 +78,62 @@
    @ApiOperation(value = "安灯工单-添加", notes = "安灯工单-添加")
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody AndonOrder andonOrder) {
        // æ ¹æ®button_id查询对应的产线ID
        if (andonOrder.getButtonId() != null) {
            String productionLineId = andonResponseConfigService.getProductionLineIdByButtonId(andonOrder.getButtonId());
            if (productionLineId != null) {
                andonOrder.setFactoryId(productionLineId);
            }
        }
        andonOrderService.save(andonOrder);
        return Result.OK("添加成功!");
    }
    /**
     * æ·»åŠ 
     *
     * @param andonOrder
     * @return
     */
    @AutoLog(value = "安灯APP工单-添加")
    @ApiOperation(value = "安灯APP工单-添加", notes = "安灯APP工单-添加")
    @PostMapping(value = "/app/add")
    public Result<String> appAdd(@RequestBody AndonOrder andonOrder) {
        // æ ¹æ®button_id查询对应的产线ID
        andonOrder.setAndonLevel("1");
        andonOrder.setFactoryId(andonOrder.getFactoryId());
        andonOrder.setOperator(andonOrder.getOperator());
        String Responder = andonResponseConfigService.getResponderByButtonId(andonOrder.getButtonId(),andonOrder.getFactoryId());
        andonOrder.setResponder(Responder);
        andonOrder.setProcessor(Responder);
        andonOrder.setOperateTime(new java.sql.Timestamp(System.currentTimeMillis()));
        andonOrderService.save(andonOrder);
        // åˆ›å»ºAndonOrderDto对象并复制属性
        AndonOrdeDto andonOrderDto = new AndonOrdeDto();
        // å¤åˆ¶å¿…要属性到Dto对象
        andonOrderDto.setId(andonOrder.getId());
        andonOrderDto.setButtonId(andonOrder.getButtonId());
        andonOrderDto.setFactoryId(andonOrder.getFactoryId());
        andonOrderDto.setOperator(andonOrder.getOperator());
        andonOrderDto.setResponder(andonOrder.getResponder());
        andonOrderDto.setProcessor(andonOrder.getProcessor());
        andonOrderDto.setAndonLevel(andonOrder.getAndonLevel());
        andonOrderDto.setOperateTime(andonOrder.getOperateTime());
        andonResponseConfigService.sendAndonNotification(andonOrderDto);
        return Result.OK("添加成功!");
    }
    /**
     * APP安灯响应操作
     *
     * @param orderId
     * @param id
     * @return
     */
    @ApiOperation(value = "APP安灯响应操作", notes = "APP安灯响应操作")
    @GetMapping(value = "/AndonRespond")
    public Result<String> AndonRespond(@RequestParam("orderId") String orderId) {
        AndonOrder andonOrder = andonOrderService.getById(orderId);
    public Result<String> AndonRespond(@RequestParam("id") String id) {
        AndonOrder andonOrder = andonOrderService.getById(id);
        andonOrder.setOrderStatus("2");
        andonOrderService.updateById(andonOrder);
        return Result.OK("响应成功!");
@@ -94,7 +142,6 @@
    /**
     * APP安灯处理操作
     *
     *
     * @return
     */
src/main/java/org/jeecg/modules/andon/controller/AndonResponseConfigController.java
@@ -11,6 +11,7 @@
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.andon.dto.AndonButtonDTO;
import org.jeecg.modules.andon.dto.AndonOrdeDto;
import org.jeecg.modules.andon.entity.AndonResponseConfig;
import org.jeecg.modules.andon.service.IAndonResponseConfigService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -68,9 +69,8 @@
    @AutoLog(value = "安灯工单-发送飞书消息")
    @ApiOperation(value = "安灯工单-发送飞书消息", notes = "安灯工单-发送飞书消息")
    @PostMapping(value = "/sendMessage")
    public Result<String> sendMessage(@RequestBody AndonButtonDTO andonButtonDTO) {
    public Result<String> sendMessage(@RequestBody AndonOrdeDto andonButtonDTO) {
        try {
            andonButtonDTO.setBlinkingFlag(1);
            // è°ƒç”¨æœåŠ¡å±‚å¤„ç†ä¸šåŠ¡é€»è¾‘
            andonResponseConfigService.sendAndonNotification(andonButtonDTO);
            return Result.OK("添加成功!");
src/main/java/org/jeecg/modules/andon/dto/AndonOrdeDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,151 @@
package org.jeecg.modules.andon.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class AndonOrdeDto {
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**删除标记*/
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private Integer delFlag;
    /**产线ID*/
    @ApiModelProperty(value = "产线ID")
    @Dict(dictTable = "base_factory", dicCode = "id", dicText = "factory_name")
    private String factoryId;
    /**安灯类型*/
    @ApiModelProperty(value = "安灯类型")
    @Dict(dictTable = "andon_button_config", dicCode = "id", dicText = "button_name")
    private String buttonId;
    /**安灯人*/
    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
    @ApiModelProperty(value = "安灯人")
    private String operator;
    /**安灯时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "安灯时间")
    private Date operateTime;
    /**安灯等级*/
    @Dict(dicCode = "andon_level")
    @ApiModelProperty(value = "安灯等级")
    private String andonLevel;
    /**响应人*/
    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
    @ApiModelProperty(value = "响应人")
    private String responder;
    /**响应时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "响应时间")
    private Date responseTime;
    /**处理人*/
    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
    @ApiModelProperty(value = "处理人")
    private String processor;
    /**处理完成时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "处理完成时间")
    private Date processTime;
    /**安灯状态*/
    @Dict(dicCode = "order_status")
    @ApiModelProperty(value = "安灯状态")
    private String orderStatus;
    /**问题描述*/
    @ApiModelProperty(value = "问题描述")
    private String problemDescreption;
    /**处理结果描述*/
    @ApiModelProperty(value = "处理结果描述")
    private String resolutionDescreption;
    @ApiModelProperty(value = "一级响应人openId")
    private String responderOpenId;
    @ApiModelProperty(value = "二级响应人openId")
    private String secondResponderOpenId;
    @ApiModelProperty(value = "三级响应人openId")
    private String thirdResponderOpenId;
    @ApiModelProperty(value = "三级响应人")
    private String thirdResponder;
    @ApiModelProperty(value = "二级响应人")
    private String secondResponder;
    /**产线名称*/
    @ApiModelProperty(value = "产线名称")
    private String factoryName;
    /**产线名称*/
    @ApiModelProperty(value = "工厂名称")
    private String parentFactoryName;
    /**一级响应时长*/
    @ApiModelProperty(value = "一级响应时长")
    private Integer upgradeResponseDuration;
    /**按钮名称*/
    @ApiModelProperty(value = "按钮名称")
    private String buttonName;
    /**
     * å®‰ç¯äººåç§°
     */
    @ApiModelProperty(value = "安灯人名称")
    private String operatorName;
    /**二级响应时长*/
    @ApiModelProperty(value = "二级响应时长")
    private Integer secondUpgradeResponseDuration;
    /**三级级响应时长*/
    @ApiModelProperty(value = "三级响应时长")
    private Integer thirdUpgradeResponseDuration;
}
src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.andon.dto.AndonButtonDTO;
import org.jeecg.modules.andon.dto.AndonOrdeDto;
import org.jeecg.modules.andon.entity.AndonButtonConfig;
import java.util.List;
@@ -27,22 +28,21 @@
     * @param factoryId
     * @return
     */
    List<AndonButtonDTO> queryUserAndonCallList(String factoryId);
    List<AndonOrdeDto> queryUserAndonCallList(String factoryId, String orderStatus);
    /**
     * å“åº”安灯列表
     * @param factoryId
     * @return
     */
    List<AndonButtonDTO> queryUserAndonRespondList(String factoryId);
    List<AndonOrdeDto> queryUserAndonRespondList(String factoryId, String orderStatus);
    /**
     * å¤„理安灯列表
     * @param factoryId
     * @return
     */
    List<AndonButtonDTO> queryUserAndonHandelList(String factoryId);
    List<AndonOrdeDto> queryUserAndonHandelList(String factoryId, String orderStatus);
}
src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml
@@ -28,49 +28,26 @@
        where arc.factory_id=#{factoryId};
    </select>
    <select id="queryUserAndonCallList" resultType="org.jeecg.modules.andon.dto.AndonButtonDTO">
        select arc.id,
               abc.id          as buttonId,
               abc.button_name as buttonName,
               abc.button_code as buttonCode,
               (select count(1)
                from andon_order ao
                where ao.button_id = arc.button_id
                  and ao.factory_id = arc.factory_id
                  and ao.order_status = '1') as blinkingFlag,
               STUFF((SELECT ',' + CAST (ao.id AS VARCHAR)
                      FROM andon_order ao
                      WHERE ao.button_id = arc.button_id
                        and ao.factory_id = arc.factory_id
                        and ao.order_status = '1'
                   FOR XML PATH ('')), 1, 1, '') as orderIds,
               bf.factory_name as factoryName,
               parent_bf.factory_name as parentFactoryName,
               abc.upgrade_response_duration as upgradeResponseDuration,
               abc.second_upgrade_response_duration as secondUpgradeResponseDuration,
               arc.firster_responder as responder,
               arc.second_responder,
               arc.third_responder,
               STUFF((SELECT ',' + ao.order_status
                      FROM andon_order ao
                      WHERE ao.button_id = arc.button_id
                        and ao.factory_id = arc.factory_id
                        and ao.order_status = '1'
                   FOR XML PATH ('')), 1, 1, '') as orderStatus
        from andon_response_config arc
                 left join andon_button_config abc
                           on arc.button_id = abc.id
                 left join base_factory bf on arc.factory_id = bf.id
                 left join base_factory parent_bf on bf.parent_id = parent_bf.id
        where arc.factory_id=#{factoryId}
          and (select count (1)
               from andon_order ao
               where ao.button_id = arc.button_id
                 and ao.factory_id = arc.factory_id
                 and ao.order_status = '1') = 1
    <select id="queryUserAndonCallList" resultType="org.jeecg.modules.andon.dto.AndonOrdeDto">
        SELECT
            ao.*,
            bf.factory_name as factoryName,
            parent_bf.factory_name as parentFactoryName,
            abc.button_name as buttonName,
            abc.upgrade_response_duration as upgradeResponseDuration,
            abc.second_upgrade_response_duration as secondUpgradeResponseDuration,
            su.username as operatorName
        FROM andon_order ao
                 LEFT JOIN base_factory bf ON ao.factory_id = bf.id
                 LEFT JOIN base_factory parent_bf ON bf.parent_id = parent_bf.id
                 LEFT JOIN andon_button_config abc ON ao.button_id = abc.id
                 LEFT JOIN sys_user su ON ao.operator = su.id
        WHERE ao.factory_id = #{factoryId}
          AND ao.del_flag = 0
          AND ao.order_status = #{orderStatus}
    </select>
    <select id="queryUserAndonRespondList" resultType="org.jeecg.modules.andon.dto.AndonButtonDTO">
    <select id="queryUserAndonRespondList" resultType="org.jeecg.modules.andon.dto.AndonOrdeDto">
        select arc.id,
               abc.id                               as buttonId,
               abc.button_name                      as buttonName,
src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.andon.dto.AndonButtonDTO;
import org.jeecg.modules.andon.dto.AndonOrdeDto;
import org.jeecg.modules.andon.entity.AndonButtonConfig;
import java.util.List;
@@ -28,21 +29,20 @@
     * @param factoryId
     * @return
     */
    List<AndonButtonDTO> queryUserAndonCallList(String factoryId);
    List<AndonOrdeDto> queryUserAndonCallList(String factoryId, String orderStatus);
    /**
     * æŸ¥è¯¢ç”¨æˆ·å‘起安灯响应列表
     * @param factoryId
     * @return
     */
    List<AndonButtonDTO> queryUserAndonRespondList(String factoryId);
    List<AndonOrdeDto> queryUserAndonRespondList(String factoryId,String orderStatus);
    /**
     * æŸ¥è¯¢ç”¨æˆ·å‘起安灯处理列表
     * @param factoryId
     * @return
     */
    List<AndonButtonDTO> queryUserAndonHandelList(String factoryId);
    List<AndonOrdeDto> queryUserAndonHandelList(String factoryId,String orderStatus);
}
src/main/java/org/jeecg/modules/andon/service/IAndonResponseConfigService.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.andon.dto.AndonButtonDTO;
import org.jeecg.modules.andon.dto.AndonOrdeDto;
import org.jeecg.modules.andon.entity.AndonOrder;
import org.jeecg.modules.andon.entity.AndonResponseConfig;
import java.util.List;
@@ -17,11 +19,34 @@
    /**
     * æ ¹æ®button_id获取产线ID
     * @param buttonId
     * @return
     */
    String getProductionLineIdByButtonId(String buttonId);
    /**
     * æ ¹æ®button_id获取响应人
     * @param buttonId
     * @return
     */
    String getResponderByButtonId(String buttonId,String factoryId);
    /**
     * æ ¹æ®button_id和factory_id获取响应配置对象
     * @param buttonId æŒ‰é’®ID
     * @param factoryId å·¥åŽ‚/产线ID
     * @return AndonResponseConfig å“åº”配置对象
     */
    AndonResponseConfig getResponseConfigByButtonIdAndFactoryId(String buttonId, String factoryId);
    /**
     * å‘送安灯通知
     * @param andonButtonDTO å®‰ç¯æŒ‰é’®DTO
     * @return ç»“æžœ
     */
    void sendAndonNotification(AndonButtonDTO andonButtonDTO);
    void sendAndonNotification(AndonOrdeDto andonButtonDTO);
}
src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java
@@ -1,7 +1,9 @@
package org.jeecg.modules.andon.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import liquibase.pro.packaged.S;
import org.jeecg.modules.andon.dto.AndonButtonDTO;
import org.jeecg.modules.andon.dto.AndonOrdeDto;
import org.jeecg.modules.andon.entity.AndonButtonConfig;
import org.jeecg.modules.andon.mapper.AndonButtonConfigMapper;
import org.jeecg.modules.andon.service.IAndonButtonConfigService;
@@ -30,18 +32,18 @@
    }
    @Override
    public List<AndonButtonDTO> queryUserAndonCallList(String factoryId) {
        return baseMapper.queryUserAndonCallList(factoryId);
    public List<AndonOrdeDto> queryUserAndonCallList(String factoryId, String orderStatus) {
        return baseMapper.queryUserAndonCallList(factoryId, orderStatus);
    }
    @Override
    public List<AndonButtonDTO> queryUserAndonRespondList(String factoryId) {
        return baseMapper.queryUserAndonRespondList(factoryId);
    public List<AndonOrdeDto> queryUserAndonRespondList(String factoryId, String orderStatus) {
        return baseMapper.queryUserAndonRespondList(factoryId, orderStatus);
    }
    @Override
    public List<AndonButtonDTO> queryUserAndonHandelList(String factoryId) {
        return baseMapper.queryUserAndonHandelList(factoryId);
    public List<AndonOrdeDto> queryUserAndonHandelList(String factoryId, String orderStatus) {
        return baseMapper.queryUserAndonHandelList(factoryId, orderStatus);
    }
src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java
@@ -6,6 +6,7 @@
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.andon.dto.AndonButtonDTO;
import org.jeecg.modules.andon.dto.AndonOrdeDto;
import org.jeecg.modules.andon.entity.AndonButtonConfig;
import org.jeecg.modules.andon.entity.AndonOrder;
import org.jeecg.modules.andon.entity.AndonResponseConfig;
@@ -51,10 +52,35 @@
        return baseMapper.getAndonResponseConfigByFactoryIdAndButtonId(factoryId, buttonId);
    }
    @Override
    public String getProductionLineIdByButtonId(String buttonId) {
        QueryWrapper<AndonResponseConfig> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("button_id", buttonId);
        AndonResponseConfig config = this.getOne(queryWrapper);
        return config != null ? config.getFactoryId() : null;
    }
    @Override
    public String getResponderByButtonId(String buttonId,String factoryId) {
        QueryWrapper<AndonResponseConfig> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("button_id", buttonId);
        queryWrapper.eq("factory_id", factoryId); // å‡è®¾factory_id对应产线ID
        AndonResponseConfig config = this.getOne(queryWrapper, false);
        return config != null ? config.getFirsterResponder() : null;
    }
    @Override
    public AndonResponseConfig getResponseConfigByButtonIdAndFactoryId(String buttonId, String factoryId) {
        QueryWrapper<AndonResponseConfig> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("button_id", buttonId);
        queryWrapper.eq("factory_id", factoryId);
        // ä½¿ç”¨false参数,当查询到多条记录时不会抛出异常,而是返回第一条
        return this.getOne(queryWrapper, false);
    }
    @Override
    public void sendAndonNotification(AndonButtonDTO andonButtonDTO) {
    public void sendAndonNotification(AndonOrdeDto andonButtonDTO) {
        /**
         * 1. éªŒè¯å·¥å•状态
         */
@@ -62,16 +88,13 @@
            log.warn("请求参数为空");
            throw new IllegalArgumentException("请求参数不能为空");
        }
        /**
         * è®¾ç½®å®‰ç¯äºº
         */
        /**
         * 2. èŽ·å–å“åº”é…ç½®
         */
        AndonResponseConfig andonResponseConfig = this.getById(andonButtonDTO.getId());
        AndonResponseConfig andonResponseConfig = getResponseConfigByButtonIdAndFactoryId(andonButtonDTO.getButtonId(), andonButtonDTO.getFactoryId());
        AndonOrder andonOrder = andonOrderService.getById(andonButtonDTO.getOrderIds());
        AndonOrder andonOrder = andonOrderService.getById(andonButtonDTO.getId());
        if (andonOrder == null) {
            log.warn("未找到ID为[{}]的安灯订单");
            throw new IllegalArgumentException("未找到对应的安灯订单");
src/main/java/org/jeecg/modules/base/service/impl/FactoryServiceImpl.java
@@ -192,7 +192,7 @@
        List<String> list = Arrays.asList(productionIds.split(","));
        LambdaQueryWrapper<Factory> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Factory::getDelFlag, CommonConstant.DEL_FLAG_0);
//        queryWrapper.eq(Factory::getFactoryCategory, "PRODUCTION_LINE");
        queryWrapper.eq(Factory::getFactoryCategory, "3");
        queryWrapper.in(Factory::getId, list);
        queryWrapper.orderByAsc(Factory::getSorter);
        return super.list(queryWrapper);
src/main/java/org/jeecg/modules/feishu/service/FeishuUserService.java
@@ -5,7 +5,7 @@
import org.jeecg.common.util.PasswordUtil;
import org.jeecg.common.util.RestUtil;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.andon.dto.AndonButtonDTO;
import org.jeecg.modules.andon.dto.AndonOrdeDto;
import org.jeecg.modules.mes.entity.FeishuUser;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
@@ -139,7 +139,7 @@
     * 2. ä¸€çº§å“åº”时长后检查状态,未处理则发送二级
     * 3. äºŒçº§å“åº”时长后检查状态,未处理则发送三级
     */
    public boolean sendAndonNotification(String accessToken, AndonButtonDTO andonOrde) {
    public boolean sendAndonNotification(String accessToken, AndonOrdeDto andonOrde) {
        try {
            String currentTime = sdf.format(new Date());
            log.info("【{}】触发一级响应(初级响应),安灯ID: {}", currentTime, andonOrde.getId());
@@ -178,7 +178,7 @@
     * å‘送指定级别的通知
     * @param level 1-一级,2-二级,3-三级
     */
    private boolean sendLevelNotification(String accessToken, AndonButtonDTO andonOrde, int level) {
    private boolean sendLevelNotification(String accessToken, AndonOrdeDto andonOrde, int level) {
        try {
            String levelDesc = getLevelDesc(level);
            String openId = getResponderOpenId(andonOrde, level);
@@ -250,7 +250,7 @@
     * @param currentLevel å½“前级别
     * @param delayMinutes å»¶è¿Ÿåˆ†é’Ÿæ•°ï¼ˆç”±å½“前级别响应时长决定)
     */
    private void scheduleNextLevelNotification(String accessToken, AndonButtonDTO andonOrde, int currentLevel, int delayMinutes) {
    private void scheduleNextLevelNotification(String accessToken, AndonOrdeDto andonOrde, int currentLevel, int delayMinutes) {
        int nextLevel = currentLevel + 1;
        if (nextLevel > 3) {
            log.info("已到达最高级别通知,无需继续调度,安灯ID: {}", andonOrde.getId());
@@ -306,7 +306,7 @@
    /**
     * æž„建通知内容(优化分隔符,提升可读性)
     */
    private String buildNotificationContent(AndonButtonDTO andonOrde, int level) {
    private String buildNotificationContent(AndonOrdeDto andonOrde, int level) {
        // èŽ·å–å·¥åŽ‚åç§°å’Œäº§çº¿åç§°ï¼Œåšç©ºå€¼ä¿æŠ¤
        String parentFactoryName = andonOrde.getParentFactoryName() != null ? andonOrde.getParentFactoryName() : "未知工厂";
        String factoryName = andonOrde.getFactoryName() != null ? andonOrde.getFactoryName() : "未知产线";
@@ -358,7 +358,7 @@
    /**
     * éªŒè¯é€šçŸ¥ç›¸å…³å‚æ•°
     */
    private boolean validateNotificationParams(AndonButtonDTO andonOrde) {
    private boolean validateNotificationParams(AndonOrdeDto andonOrde) {
        if (andonOrde == null) {
            log.error("安灯订单信息为空");
            return false;
@@ -401,7 +401,7 @@
    }
    // å·¥å…·æ–¹æ³•:获取响应人openId
    private String getResponderOpenId(AndonButtonDTO andonOrde, int level) {
    private String getResponderOpenId(AndonOrdeDto andonOrde, int level) {
        switch (level) {
            case 1: return andonOrde.getResponderOpenId();
            case 2: return andonOrde.getSecondResponderOpenId();
@@ -411,7 +411,7 @@
    }
    // å·¥å…·æ–¹æ³•:获取响应人名称
    private String getResponderName(AndonButtonDTO andonOrde, int level) {
    private String getResponderName(AndonOrdeDto andonOrde, int level) {
        String name = null;
        switch (level) {
            case 1:
@@ -430,7 +430,7 @@
    }
    // å·¥å…·æ–¹æ³•:获取响应时长(一级=二级延迟,二级=三级延迟)
    private int getResponseDuration(AndonButtonDTO andonOrde, int level) {
    private int getResponseDuration(AndonOrdeDto andonOrde, int level) {
        int duration = 0;
        switch (level) {
            case 1:
@@ -449,7 +449,7 @@
    }
    // å·¥å…·æ–¹æ³•:判断指定级别响应人是否有效
    private boolean hasValidResponder(AndonButtonDTO andonOrde, int level) {
    private boolean hasValidResponder(AndonOrdeDto andonOrde, int level) {
        String openId = getResponderOpenId(andonOrde, level);
        return openId != null && !openId.isEmpty();
    }
src/main/java/org/jeecg/modules/wms/WMSWebService.java
@@ -7,6 +7,8 @@
import javax.xml.ws.WebServiceClient;
import javax.xml.ws.WebServiceFeature;
import javax.xml.ws.Service;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.wms.service.WebServiceSoap;
import org.springframework.stereotype.Component;
@@ -16,6 +18,7 @@
 * Generated source version: 3.5.5
 *
 */
@Slf4j
@Component
@WebServiceClient(name = "WebService",
                  wsdlLocation = "classpath:/wsdl/WebService.asmx.wsdl",
@@ -32,9 +35,7 @@
        try {
            url = new URL("classpath:/wsdl/WebService.asmx.wsdl");
        } catch (MalformedURLException e) {
            java.util.logging.Logger.getLogger(WMSWebService.class.getName())
                .log(java.util.logging.Level.INFO,
                     "Can not initialize the default wsdl from {0}", "classpath:/wsdl/WebService.asmx.wsdl");
            log.error("Can not initialize the default wsdl from {}", "classpath:/wsdl/WebService.asmx.wsdl");
        }
        WSDL_LOCATION = url;
    }
src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java
@@ -3,44 +3,38 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.wms.WMSWebService;
import org.jeecg.modules.wms.dto.WSResponse;
import org.jeecg.modules.wms.request.ReceiveWMSScanItemList;
import org.jeecg.modules.wms.request.*;
import org.jeecg.modules.wms.service.MESWebServiceSoap;
import org.jeecg.modules.wms.service.WebServiceSoap;
import org.jeecg.modules.wms.service.WMSWebServiceClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@Api(tags = "WMS集成测试")
@RestController
@RequestMapping("/wms/client")
@Slf4j
public class WMSTestController {
    @Value("${webservice.url}")
    private String url;
    @Autowired
    private WMSWebService webService;
    private WMSWebServiceClient webServiceClient;
    private final static String localUrl = "http://localhost:9989/jeecg-boot/webservice/ReceiveWMSScanItemList?wsdl";
    private final static String localUrl = "http://localhost:9989/ebservice/ReceiveWMSScanItemList?wsdl";
    @ApiOperation(value = "WMS集成测试-接收WMS移库结果", notes = "WMS集成测试-接收WMS移库结果")
    @PostMapping("/testReceiveWMSScanItemList")
    public Result<?> 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);
        WSResponse response = service.receiveWMSScanItemList(request);
        return Result.ok(response);
    }
@@ -54,20 +48,45 @@
//        WebServiceSoap service = (WebServiceSoap) factory.create();
//        String response = service.helloWorld();
//        return Result.ok(response);
        WebServiceSoap port = webService.getWebServiceSoap12();
//        WebServiceSoap port = webService.getWebServiceSoap();
        // 2. èŽ·å– CXF åº•层 Client å¯¹è±¡
        Client client = ClientProxy.getClient(port);
//        Client client = ClientProxy.getClient(port);
        // 3. èŽ·å– HTTPConduit å¹¶è®¾ç½®è¶…æ—¶
        HTTPConduit http = (HTTPConduit) client.getConduit();
        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
//        HTTPConduit http = (HTTPConduit) client.getConduit();
//        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
//
//        httpClientPolicy.setConnectionTimeout(10 * 1000); // è¿žæŽ¥è¶…æ—¶ 10 ç§’
//        httpClientPolicy.setReceiveTimeout(300 * 1000);   // è¯»å–è¶…æ—¶ 60 ç§’(重点!)
        httpClientPolicy.setConnectionTimeout(10 * 1000); // è¿žæŽ¥è¶…æ—¶ 10 ç§’
        httpClientPolicy.setReceiveTimeout(300 * 1000);   // è¯»å–è¶…æ—¶ 60 ç§’(重点!)
        http.setClient(httpClientPolicy);
        String result = port.helloWorld();
        return Result.ok(result);
//        http.setClient(httpClientPolicy);
        Map<String, Object> stringObjectMap = webServiceClient.helloWorld();
        return Result.ok(stringObjectMap);
    }
    @ApiOperation(value = "WMS集成测试-物料拉动", notes = "WMS集成测试-物料拉动")
    @PostMapping("/receiveReservation")
    public Result<?> receiveReservation(@RequestBody WebReservationOrder request) {
        Map<String, Object> stringObjectMap = webServiceClient.receiveReservation(request);
        return Result.ok(stringObjectMap);
    }
    @ApiOperation(value = "WMS集成测试-移库申请", notes = "WMS集成测试-移库申请")
    @PostMapping("/receiveMESScanItemList")
    public Result<?> receiveMESScanItemList(@RequestBody List<WebServiceSendItem> webServiceSendItem) {
        ArrayOfWebServiceSendItem request = new ArrayOfWebServiceSendItem();
        request.setWebServiceSendItem(webServiceSendItem);
        Map<String, Object> stringObjectMap = webServiceClient.receiveMESScanItemList(request);
        return Result.ok(stringObjectMap);
    }
    @ApiOperation(value = "WMS集成测试-移库申请撤销", notes = "WMS集成测试-移库申请撤销")
    @PostMapping("/deliOrderDelete")
    public Result<?> deliOrderDelete(@RequestParam String sFactoryCode, @RequestParam String sStockRecord) {
        Map<String, Object> stringObjectMap = webServiceClient.deliOrderDelete(sFactoryCode, sStockRecord);
        return Result.ok(stringObjectMap);
    }
}
src/main/java/org/jeecg/modules/wms/dto/WSResponse.java
@@ -33,14 +33,14 @@
@Getter
@Setter
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "WSResponse", propOrder = {
@XmlType(name = "WSResponse",  propOrder = {
        "errorCode",
        "errorDesc"
})
public class WSResponse {
    @XmlElement(name = "ErrorCode")
    @XmlElement(name = "ErrorCode", namespace = "http://tempuri.org/")
    protected String errorCode;
    @XmlElement(name = "ErrorDesc")
    @XmlElement(name = "ErrorDesc", namespace = "http://tempuri.org/")
    protected String errorDesc;
}
src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java
@@ -34,7 +34,7 @@
})
public class ArrayOfWebServiceSendItem {
    @XmlElement(name = "WebServiceSendItem", nillable = true)
    @XmlElement(name = "WebServiceSendItem", nillable = true, namespace = "http://tempuri.org/")
    protected List<WebServiceSendItem> webServiceSendItem;
    /**
@@ -66,4 +66,7 @@
        return this.webServiceSendItem;
    }
    public void setWebServiceSendItem(List<WebServiceSendItem> webServiceSendItem) {
        this.webServiceSendItem = webServiceSendItem;
    }
}
src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java
@@ -35,6 +35,6 @@
@Setter
public class ReceiveMESScanItemList {
    @XmlElement(name = "oMESScanItemList")
    @XmlElement(name = "oMESScanItemList", namespace = "http://tempuri.org/")
    protected ArrayOfWebServiceSendItem omesScanItemList;
}
src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java
@@ -4,10 +4,7 @@
import lombok.Getter;
import lombok.Setter;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.*;
/**
@@ -38,5 +35,6 @@
@Setter
public class ReceiveReservation {
    @XmlElement(name = "oWebReservationOrder")
    protected WebReservationOrder oWebReservationOrder;
}
src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java
@@ -8,6 +8,7 @@
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -40,12 +41,21 @@
})
@Getter
@Setter
public class WebReservationOrder {
public class WebReservationOrder implements Serializable {
    @XmlElement(name = "FactoryCode")
    @XmlElement(name = "FactoryCode", namespace = "http://tempuri.org/")
    protected String factoryCode;
    @XmlElement(name = "ReservationOrder")
    @XmlElement(name = "ReservationOrder", namespace = "http://tempuri.org/")
    protected String reservationOrder;
    @XmlElement(name = "Total", required = true)
    @XmlElement(name = "Total", required = true, namespace = "http://tempuri.org/")
    protected BigDecimal total;
    @Override
    public String toString() {
        return "WebReservationOrder{" +
                "factoryCode='" + factoryCode + '\'' +
                ", reservationOrder='" + reservationOrder + '\'' +
                ", total=" + total +
                '}';
    }
}
src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java
@@ -70,38 +70,38 @@
@Setter
public class WebServiceSendItem {
    @XmlElement(name = "FactoryCode")
    @XmlElement(name = "FactoryCode", namespace = "http://tempuri.org/")
    protected String factoryCode;
    @XmlElement(name = "SkuCode")
    @XmlElement(name = "SkuCode", namespace = "http://tempuri.org/")
    protected String skuCode;
    @XmlElement(name = "Align")
    @XmlElement(name = "Align", namespace = "http://tempuri.org/")
    protected String align;
    @XmlElement(name = "Pallet")
    @XmlElement(name = "Pallet", namespace = "http://tempuri.org/")
    protected String pallet;
    @XmlElement(name = "PackageNo")
    @XmlElement(name = "PackageNo", namespace = "http://tempuri.org/")
    protected String packageNo;
    @XmlElement(name = "TrackLot")
    @XmlElement(name = "TrackLot", namespace = "http://tempuri.org/")
    protected long trackLot;
    @XmlElement(name = "Series")
    @XmlElement(name = "Series", namespace = "http://tempuri.org/")
    protected long series;
    @XmlElement(name = "MesStockID")
    @XmlElement(name = "MesStockID", namespace = "http://tempuri.org/")
    protected String mesStockID;
    @XmlElement(name = "Quantity", required = true)
    @XmlElement(name = "Quantity", required = true, namespace = "http://tempuri.org/")
    protected BigDecimal quantity;
    @XmlElement(name = "SapTrackLot")
    @XmlElement(name = "SapTrackLot", namespace = "http://tempuri.org/")
    protected String sapTrackLot;
    @XmlElement(name = "Section")
    @XmlElement(name = "Section", namespace = "http://tempuri.org/")
    protected String section;
    @XmlElement(name = "DestSection")
    @XmlElement(name = "DestSection", namespace = "http://tempuri.org/")
    protected String destSection;
    @XmlElement(name = "SupplierCode")
    @XmlElement(name = "SupplierCode", namespace = "http://tempuri.org/")
    protected String supplierCode;
    @XmlElement(name = "SupplierTrackLot")
    @XmlElement(name = "SupplierTrackLot", namespace = "http://tempuri.org/")
    protected String supplierTrackLot;
    @XmlElement(name = "StageID")
    @XmlElement(name = "StageID", namespace = "http://tempuri.org/")
    protected String stageID;
    @XmlElement(name = "Remark")
    @XmlElement(name = "Remark", namespace = "http://tempuri.org/")
    protected String remark;
    @XmlElement(name = "OrderCode")
    @XmlElement(name = "OrderCode", namespace = "http://tempuri.org/")
    protected String orderCode;
}
src/main/java/org/jeecg/modules/wms/service/WMSWebServiceClient.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package org.jeecg.modules.wms.service;
import org.jeecg.modules.wms.request.ArrayOfWebServiceSendItem;
import org.jeecg.modules.wms.request.WebReservationOrder;
import java.util.Map;
public interface WMSWebServiceClient {
    /**
     * æµ‹è¯•连通接口
     * @return
     */
    Map<String, Object> helloWorld();
    /**
     * ç‰©æ–™æ‹‰åЍ
     * @param oWebReservationOrder
     * @return
     */
    Map<String, Object> receiveReservation(WebReservationOrder oWebReservationOrder);
    /**
     * ç§»åº“申请
     * @param oMESScanItemList
     * @return
     */
    Map<String, Object> receiveMESScanItemList(ArrayOfWebServiceSendItem oMESScanItemList);
    /**
     * æ’¤é”€ç§»åº“申请
     * @param sFactoryCode
     * @param sStockRecord
     * @return
     */
    Map<String, Object> deliOrderDelete(String sFactoryCode, String sStockRecord);
}
src/main/java/org/jeecg/modules/wms/service/WebServiceSoap.java
@@ -46,7 +46,7 @@
    WSResponse receiveMESScanItemList(
            @WebParam(name = "oMESScanItemList", targetNamespace = "http://tempuri.org/")
            ArrayOfWebServiceSendItem oMESScanItemList
            ArrayOfWebServiceSendItem omesScanItemList
    );
    @WebMethod(operationName = "DeliOrderDelete", action = "http://tempuri.org/DeliOrderDelete")
src/main/java/org/jeecg/modules/wms/service/impl/WMSWebServiceClientImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package org.jeecg.modules.wms.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.aspect.annotation.ApiLog;
import org.jeecg.common.constant.ApiLogCategoryEnum;
import org.jeecg.modules.wms.WMSWebService;
import org.jeecg.modules.wms.dto.WSResponse;
import org.jeecg.modules.wms.request.ArrayOfWebServiceSendItem;
import org.jeecg.modules.wms.request.WebReservationOrder;
import org.jeecg.modules.wms.service.WMSWebServiceClient;
import org.jeecg.modules.wms.service.WebServiceSoap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service
@Slf4j
public class WMSWebServiceClientImpl implements WMSWebServiceClient {
    @Autowired
    private WMSWebService webService;
    @Override
    @ApiLog(apiName = "WMS测试连通接口(HelloWorld)", apiCategory = ApiLogCategoryEnum.WMS)
    public Map<String, Object> helloWorld() {
        Map<String, Object> resultMap = new HashMap<>();
        WebServiceSoap port = webService.getWebServiceSoap();
        String result = port.helloWorld();
        resultMap.put("zmess", "请求成功");
        resultMap.put("ztype", 200);
        resultMap.put("importParameters", null);
        resultMap.put("result", result);
        return resultMap;
    }
    @Override
    @ApiLog(apiName = "物料拉动(receiveReservation)", apiCategory = ApiLogCategoryEnum.WMS)
    public Map<String, Object> receiveReservation(WebReservationOrder oWebReservationOrder) {
        Map<String, Object> resultMap = new HashMap<>();
        WebServiceSoap port = webService.getWebServiceSoap();
        WSResponse result = port.receiveReservation(oWebReservationOrder);
        resultMap.put("zmess", "请求成功");
        resultMap.put("ztype", 200);
        resultMap.put("importParameters", oWebReservationOrder);
        resultMap.put("result", result);
        return resultMap;
    }
    @Override
    @ApiLog(apiName = "移库申请(receiveMESScanItemList)", apiCategory = ApiLogCategoryEnum.WMS)
    public Map<String, Object> receiveMESScanItemList(ArrayOfWebServiceSendItem oMESScanItemList) {
        Map<String, Object> resultMap = new HashMap<>();
        WebServiceSoap port = webService.getWebServiceSoap();
        WSResponse result = port.receiveMESScanItemList(oMESScanItemList);
        resultMap.put("zmess", "请求成功");
        resultMap.put("ztype", 200);
        resultMap.put("importParameters", oMESScanItemList);
        resultMap.put("result", result);
        return resultMap;
    }
    @Override
    @ApiLog(apiName = "撤销移库申请(deliOrderDelete)", apiCategory = ApiLogCategoryEnum.WMS)
    public Map<String, Object> deliOrderDelete(String sFactoryCode, String sStockRecord) {
        Map<String, Object> resultMap = new HashMap<>();
        WebServiceSoap port = webService.getWebServiceSoap();
        WSResponse result = port.deliOrderDelete(sFactoryCode, sStockRecord);
        resultMap.put("zmess", "请求成功");
        resultMap.put("ztype", 200);
        resultMap.put("importParameters", sStockRecord);
        resultMap.put("result", result);
        return resultMap;
    }
}