Browse Source

【科翔ERPAPI接口】【ERP操作监听】

wuyx 2 months ago
parent
commit
ffb532de49

+ 0 - 4
src/main/java/com/uas/eis/aspect/UasEventListenerFactory.java

@@ -53,10 +53,6 @@ public class UasEventListenerFactory {
     @Async
     public void invokeListeners(UasEvent event) {
         try {
-            DataCenter dataCenter = DataCenter.INSTANCE;
-            if (null == dataCenter) {
-                return;
-            }
             SpObserver.putSp(event.getMaster());
             Map<String, List<BeanMethod>> map = beanMethodMap.get(event.getCaller());
             if (null != map) {

+ 35 - 0
src/main/java/com/uas/eis/config/RedisConfig.java

@@ -0,0 +1,35 @@
+package com.uas.eis.config;
+
+import com.uas.eis.aspect.UasEventListenerAdapter;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.listener.ChannelTopic;
+import org.springframework.data.redis.listener.RedisMessageListenerContainer;
+
+/**
+ * @author yingp
+ * @date 2020/2/16
+ */
+@Configuration
+public class RedisConfig {
+
+    @Bean
+    public UasEventListenerAdapter uasOperationListener() {
+        return new UasEventListenerAdapter();
+    }
+
+    @Bean
+    public ChannelTopic uasTopic() {
+        return new ChannelTopic("channel:uas");
+    }
+
+    @Bean
+    public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory connectionFactory) {
+        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
+        container.setConnectionFactory(connectionFactory);
+        // 订阅来自uas的消息
+        container.addMessageListener(uasOperationListener(), uasTopic());
+        return container;
+    }
+}

+ 2 - 1
src/main/java/com/uas/eis/core/enums/BusinessType.java

@@ -18,7 +18,8 @@ public enum BusinessType {
     QUERY_GOOD( "QUERY_GOOD","查询型号资料", "型号资料","Product!finish",  "com.uas.eis.service.GoodsServiceImpl", "queryGood"),
     QUERY_VERIFYAPPLY( "QUERY_VERIFYAPPLY","查询收料单", "采购收料单","VerifyApply",  "com.uas.eis.service.VerifyApplyServiceImpl", "queryVerifyApply"),
     CREATE_VERIFYAPPLY( "CREATE_VERIFYAPPLY","写入收料单", "采购收料单","VerifyApply",  "com.uas.eis.service.VerifyApplyServiceImpl", "createVerifyApply"),
-    UPDATE_VERIFYAPPLY( "UPDATE_VERIFYAPPLY","更新收料单", "采购收料单","VerifyApply",  "com.uas.eis.service.VerifyApplyServiceImpl", "updateVerifyApply")
+    UPDATE_VERIFYAPPLY( "UPDATE_VERIFYAPPLY","更新收料单", "采购收料单","VerifyApply",  "com.uas.eis.service.VerifyApplyServiceImpl", "updateVerifyApply"),
+    QUERY_MAKE( "QUERY_MAKE","查询制造单", "制造单","",  "com.uas.eis.service.MakeServiceImpl", "findMakeById")
     ;
     private final String code;
     private final String name;//业务名称

+ 5 - 2
src/main/java/com/uas/eis/entity/MakeMaterial.java

@@ -1,9 +1,12 @@
 package com.uas.eis.entity;
 
-import java.io.Serializable;
+import lombok.Data;
 
+import java.io.Serializable;
+@Data
 public class MakeMaterial implements Serializable {
     private Integer mm_id;
     private String mm_code;
-    private String mm_maid;
+    private Integer mm_maid;
+    private Integer mm_detno;
 }

+ 23 - 0
src/main/java/com/uas/eis/listener/UasGoodListener.java

@@ -0,0 +1,23 @@
+package com.uas.eis.listener;
+
+import com.uas.eis.aspect.UasEventListener;
+import com.uas.eis.dto.UasEvent;
+import com.uas.eis.entity.Goods;
+import com.uas.eis.service.GoodsServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+
+@Component
+public class UasGoodListener {
+    @Autowired
+    private GoodsServiceImpl goodsService;
+    /**
+     * 型号资料审核
+     */
+    @UasEventListener(caller = "Product!finish", operation = "AUDIT")
+    public void onGoodAudit(UasEvent event) {
+        //获取审核的型号信息
+        Goods goods = goodsService.findById(Integer.parseInt(event.getKey().toString()));
+    }
+}

+ 1 - 8
src/main/java/com/uas/eis/listener/UasMakeListener.java

@@ -18,14 +18,7 @@ public class UasMakeListener {
      */
     @UasEventListener(caller = "Make!Base", operation = "CANCELMAKE")
     public void onMakeCancel(UasEvent event) {
-        String toSp = event.getMaster();//触发账套
-        String fromSp = SpObserver.getSp();//默认账套
-        if(!fromSp.equals(toSp)){
-            SpObserver.putSp(toSp);//切换账套
-        }
-        System.out.println("Make!Base");
+        //获取取消的工单信息
         Make make = makeService.findById(Integer.parseInt(event.getKey().toString()));
-        System.out.println(make.toString());
-        SpObserver.putSp(fromSp);//切换回默认账套
     }
 }

+ 0 - 29
src/main/java/com/uas/eis/listener/UasProdInOutListener.java

@@ -1,29 +0,0 @@
-package com.uas.eis.listener;
-
-import com.uas.eis.aspect.UasEventListener;
-import com.uas.eis.dto.UasEvent;
-import com.uas.eis.entity.ProdInOut;
-import com.uas.eis.service.ProdInOutService;;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-
-/**
- * @author: zhouy
- * @date: 2021/9/26 10:47
- * @desc: 出入库单事件处理
- */
-@Component
-public class UasProdInOutListener {
-
-    @Autowired
-    private ProdInOutService prodInOutService;
-    /**
-     * 生产领料单过账->推送金蝶生成对应单据
-     */
-    @UasEventListener(caller = "ProdInOut!Picking", operation = "POST")
-    public void onProdInOutPost_picking(UasEvent event) {
-        ProdInOut prodInout = prodInOutService.findById(Integer.parseInt(event.getKey().toString()));
-    }
-}

+ 3 - 1
src/main/java/com/uas/eis/service/GoodsServiceImpl.java

@@ -32,6 +32,8 @@ public class GoodsServiceImpl {
         Integer id = Integer.valueOf(String.valueOf(apiReq.getData()));
         return ApiResponse.successRsp("1", "查询成功",apiReq.getRequestId(), goodDao.getGood(id));
     }
-
+    public Goods findById(Integer id){
+        return goodDao.getGood(id);
+    }
 
 }

+ 8 - 0
src/main/java/com/uas/eis/service/MakeServiceImpl.java

@@ -1,7 +1,11 @@
 package com.uas.eis.service;
 
 import com.uas.eis.dao.MakeDao;
+import com.uas.eis.entity.ApiReq;
 import com.uas.eis.entity.Make;
+import com.uas.eis.entity.VerifyApply;
+import com.uas.eis.sdk.entity.ApiResult;
+import com.uas.eis.sdk.resp.ApiResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -12,6 +16,10 @@ public class MakeServiceImpl {
     @Autowired
     private MakeDao makeDao;
 
+    public ApiResult<Make> findMakeById(ApiReq apiReq){
+        Integer id = Integer.valueOf(String.valueOf(apiReq.getData()));
+        return ApiResponse.successRsp("1", "查询成功",apiReq.getRequestId(), makeDao.getMake(id));
+    }
     public Make findById(Integer id){
         return makeDao.getMake(id);
     }

+ 29 - 0
src/main/resources/README/ERP操作编码清单.md

@@ -0,0 +1,29 @@
+常见ERP操作代码清单
+
+| 操作 | 操作代码  |
+|:--- |:---  |
+| 保存 | SAVE |
+| 更新 | UPDATE |
+| 提交 | COMMIT |
+| 反提交 | RESCOMMIT |
+| 禁用 | BANNED |
+| 反禁用 | RESBANNED |
+| 审核 | AUDIT |
+| 反审核 | RESAUDIT |
+| 过账 | POST |
+| 反过账 | RESPOST |
+| 打印 | PRINT |
+| 批准 | APPROVE |
+| 反批准 | RESAPPROVE |
+
+其它操作编号需联系ERP IT获取
+现有非通用操作码清单
+
+| 操作     | CALLER| 操作代码      |
+|:-------|:---  |:----------|
+| 工单取消投料 | Make!Base| SAVE      |
+| 订单暂停   | SaleManage| stopOrder |
+| 订单取消   | SaleManage| cancelOrder |
+| 订单恢复生产 | SaleManage| restartOrder |
+| 订单关闭订单 | SaleManage| closeOrder |
+

+ 6 - 17
src/main/resources/README/代码结构及数据结构说明.md

@@ -36,26 +36,15 @@
         - 列表查询方法: queryGoodsList
 
 - 业务操作监听
-  ERP操作后触发,需要关键参数:CALLER OPRATION
+- 类路径:com.uas.eis.listener
+  ERP操作后触发并执行,需要关键参数:CALLER OPRATION
     - caller 表示监听操作对应界面的caller
     - opration 表示监听操作对应界面的操作名,通用操作有:
+示例代码:
+    - 型号资料审核后: com.uas.eis.listener.UasGoodListener
+    - 工单取消投料后: com.uas.eis.listener.UasMakeListener
+  其它操作码见《ERP操作码清单》
 
-| 操作 | 操作代码  |
-|:--- |:---  |
-| 保存 | SAVE |
-| 更新 | UPDATE |
-| 提交 | COMMIT |
-| 反提交 | RESCOMMIT |
-| 禁用 | BANNED |
-| 反禁用 | RESBANNED |
-| 审核 | AUDIT |
-| 反审核 | RESAUDIT |
-| 过账 | POST |
-| 反过账 | RESPOST |
-| 打印 | PRINT |
-| 批准 | APPROVE |
-| 反批准 | RESAPPROVE |
-  非通用操作名需联系ERP IT获取
 #### 表结构
 - 工厂配置表:  MATER
   又名账套表,只取默认账套(科翔集团DATACENTER_KX)账套下的数据,此表数据仅用于查询校验账套是否存在,不允许修改删除

+ 3 - 0
src/main/resources/application-prod.yml

@@ -18,6 +18,9 @@ spring:
         minEvictableIdleTimeMillis: 300000
         poolPreparedStatements: true
         maxPoolPreparedStatementPerConnectionSize: 3
+    redis:
+        host: 127.0.0.1
+        port: 6379
 server:
     tomcat:
         uri_encoding: UTF-8

+ 1 - 0
src/test/java/com/uas/eis/UasEisApplicationTests.java

@@ -23,6 +23,7 @@ import java.util.List;
 public class UasEisApplicationTests {
 	@Autowired
 	private GoodsServiceImpl goodsService;
+
 	@Test
 	public void invoke() {
 		String className = "com.uas.eis.service.GoodsServiceImpl";