From 608fb6f9529ce51291ef682638a5efc7dd51ac63 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 18 十一月 2025 08:21:08 +0800
Subject: [PATCH] 1.完善找库位 2.新增erp订单删除后,wms订单跟着删除功能 3.新增订单完成后,上报erp,erp报错后显现在出货单中 4.新增一键查询到异常完成订单 5.对销售单据和其他单据进行区分出库 6.对中间表订单状态进行完善 7.新增锁单功能 8.新增任务查询维护加上订单号

---
 src/main/java/com/zy/third/task/handler/OrderHandler.java |  129 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 118 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/third/task/handler/OrderHandler.java b/src/main/java/com/zy/third/task/handler/OrderHandler.java
index 27ec3ff..d5015da 100644
--- a/src/main/java/com/zy/third/task/handler/OrderHandler.java
+++ b/src/main/java/com/zy/third/task/handler/OrderHandler.java
@@ -1,22 +1,19 @@
 package com.zy.third.task.handler;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
-import com.zy.asrs.entity.DocType;
-import com.zy.asrs.entity.Mat;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.entity.OrderDetl;
-import com.zy.asrs.service.DocTypeService;
-import com.zy.asrs.service.MatService;
-import com.zy.asrs.service.OrderDetlService;
-import com.zy.asrs.service.OrderService;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.common.model.DetlDto;
 import com.zy.third.entity.ExdInstockSource;
 import com.zy.third.entity.ExdOutstockSource;
+import com.zy.third.entity.ExdStock;
+import com.zy.third.service.ExdStockService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -47,6 +44,13 @@
     @Autowired
     private MatService matService;
 
+    @Autowired
+    private ExdStockService exdStockService;
+    @Autowired
+    private Order1Service order1Service;
+    @Autowired
+    private OrderDetl1Service orderDetl1Service;
+
 
     @Transactional
     public ReturnT<String> readInOrder(List<ExdInstockSource> exdInstockSource) {
@@ -54,7 +58,15 @@
         Integer ftrantype = exdInstockSource.get(0).getFtrantype();
         Order order = orderService.selectByNo(fbillno);
         if (!Cools.isEmpty(order)) {
-            throw new CoolException(fbillno + "鍗曟嵁宸插瓨鍦紝璇峰嬁閲嶅鎻愪氦");
+            if (order.getSettle() > 1L) {
+                throw new CoolException(fbillno + "鍗曟嵁浣滀笟涓紝璇峰嬁閲嶅鎻愪氦");
+            }
+            orderService.remove(order.getId());
+            //鍒犻櫎鍏ュ簱瀛愬崟
+            Order1 order1 = order1Service.selectByNo(fbillno);
+            if (!Cools.isEmpty(order1)) {
+                order1Service.remove(order1.getId());
+            }
         }
         DocType docType = docTypeService.selectById(ftrantype);
         if (docType == null) {
@@ -102,12 +114,55 @@
         if (!orderService.insert(order)) {
             throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
         }
+
+        //鐢熸垚瀛愬崟涓昏〃
+        Order1 order1 = new Order1(
+                String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                fbillno,    // 璁㈠崟缂栧彿
+                DateUtils.convert(exdInstockSource.get(0).getFdate()),    // 鍗曟嵁鏃ユ湡
+                docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                null,    // 椤圭洰缂栧彿
+                null,    //
+                null,    // 璋冩嫧椤圭洰缂栧彿
+                null,    // 鍒濆绁ㄦ嵁鍙�
+                null,    // 绁ㄦ嵁鍙�
+                null,    // 瀹㈡埛缂栧彿
+                null,    // 瀹㈡埛
+                null,    // 鑱旂郴鏂瑰紡
+                null,    // 鎿嶄綔浜哄憳
+                null,    // 鍚堣閲戦
+                null,    // 浼樻儬鐜�
+                null,    // 浼樻儬閲戦
+                null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                null,    // 瀹炰粯閲戦
+                null,    // 浠樻绫诲瀷
+                null,    // 涓氬姟鍛�
+                null,    // 缁撶畻澶╂暟
+                null,    // 閭垂鏀粯绫诲瀷
+                null,    // 閭垂
+                null,    // 浠樻鏃堕棿
+                null,    // 鍙戣揣鏃堕棿
+                null,    // 鐗╂祦鍚嶇О
+                null,    // 鐗╂祦鍗曞彿
+                1L,    // 璁㈠崟鐘舵��
+                1,    // 鐘舵��
+                9527L,    // 娣诲姞浜哄憳
+                now,    // 娣诲姞鏃堕棿
+                9527L,    // 淇敼浜哄憳
+                now,    // 淇敼鏃堕棿
+                null    // 澶囨敞
+        );
+        if (!order1Service.insert(order1)) {
+            throw new CoolException("鐢熸垚瀛愬崟鎹富妗eけ璐ワ紝璇疯仈绯荤鐞嗗憳");
+        }
+
         // 鍗曟嵁鏄庣粏妗�
         List<DetlDto> list = new ArrayList<>();
         for (ExdInstockSource detail : exdInstockSource) {
             DetlDto dto = new DetlDto(detail.getFitemid() + "", detail.getFbatchno(), detail.getFqty());
             dto.setFrob(detail.getFrob());
             dto.setFInterID(detail.getFinterid());
+            dto.setProdInKind(detail.getFdcstockid()+"");
             if (DetlDto.has(list, dto)) {
                 DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                 assert detlDto != null;
@@ -124,6 +179,9 @@
             OrderDetl orderDetl = new OrderDetl();
             orderDetl.sync(mat);
             orderDetl.setBatch(detlDto.getBatch());
+            if(detlDto.getAnfme() <0) {
+                detlDto.setAnfme(-detlDto.getAnfme());
+            }
             orderDetl.setAnfme(detlDto.getAnfme());
             orderDetl.setOrderId(order.getId());
             orderDetl.setOrderNo(order.getOrderNo());
@@ -134,10 +192,33 @@
             orderDetl.setStatus(1);
             orderDetl.setQty(0.0D);
             orderDetl.setDeadWarn(detlDto.getFInterID());
-            orderDetl.setInspect(detlDto.getFrob());
+            orderDetl.setBeBatch(detlDto.getFrob());
+            ExdStock id = exdStockService.selectOne(new EntityWrapper<ExdStock>().eq("ID", detlDto.getProdInKind()));
+            orderDetl.setBrand(id.getFname());//浠撳簱
             if (!orderDetlService.insert(orderDetl)) {
                 throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
             }
+
+            //鐢熸垚瀛愬崟鏄庣粏
+            OrderDetl1 orderDetl1 = new OrderDetl1();
+            orderDetl1.sync(orderDetl);
+            orderDetl1.setOrderId(order1.getId());
+            if (!orderDetl1Service.insert(orderDetl1)) {
+                throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+            }
+        }
+        return SUCCESS;
+    }
+
+    @Transactional
+    public ReturnT<String> deletereadInOrder(List<ExdInstockSource> exdInstockSource) {
+        String fbillno = exdInstockSource.get(0).getFbillno();
+        Order order = orderService.selectByNo(fbillno);
+        if (!Cools.isEmpty(order)&&order.getStatus()>1) {
+            if (order.getSettle() > 1L) {
+                throw new CoolException(fbillno + "鍗曟嵁姝e湪浣滀笟涓紝鏃犳硶鍒犻櫎");
+            }
+            orderService.remove(order.getId());
         }
         return SUCCESS;
     }
@@ -151,9 +232,16 @@
         // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
         if (!Cools.isEmpty(order)) {
             if (order.getSettle() > 1L) {
-                throw new CoolException(fbillno + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�");
+                throw new CoolException(fbillno + "鍗曟嵁姝e湪浣滀笟涓紝璇峰嬁閲嶅鎻愪氦");
             }
             orderService.remove(order.getId());
+        }
+        if(ftrantype == 41){
+            ftrantype = 42;
+        }else if(ftrantype == 24){
+            ftrantype = 25;
+        }else if(ftrantype == 1){
+            ftrantype = 3;
         }
         DocType docType = docTypeService.selectById(ftrantype);
         Date now = new Date();
@@ -201,10 +289,12 @@
         List<DetlDto> list = new ArrayList<>();
         for (ExdOutstockSource detail : exdOutstockSource) {
             DetlDto dto = new DetlDto(detail.getFitemid()+"", detail.getFbatchno(), detail.getFqty());
+            dto.setFInterID(detail.getFinterid());
             if (DetlDto.has(list, dto)) {
                 DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                 assert detlDto != null;
                 detlDto.setAnfme(detlDto.getAnfme() + detail.getFqty());
+
             } else {
                 list.add(dto);
             }
@@ -217,6 +307,9 @@
             OrderDetl orderDetl = new OrderDetl();
             orderDetl.sync(mat);
             orderDetl.setBatch(detlDto.getBatch());
+            if(detlDto.getAnfme() <0) {
+                detlDto.setAnfme(-detlDto.getAnfme());
+            }
             orderDetl.setAnfme(detlDto.getAnfme());
             orderDetl.setOrderId(order.getId());
             orderDetl.setOrderNo(order.getOrderNo());
@@ -224,6 +317,7 @@
             orderDetl.setCreateTime(now);
             orderDetl.setUpdateBy(9527L);
             orderDetl.setUpdateTime(now);
+            orderDetl.setDeadWarn(detlDto.getFInterID());//璁㈠崟鍐呯爜
             orderDetl.setStatus(1);
             orderDetl.setQty(0.0D);
             if (!orderDetlService.insert(orderDetl)) {
@@ -233,4 +327,17 @@
         return SUCCESS;
     }
 
+    @Transactional
+    public ReturnT<String> deletereadOutOrder(List<ExdOutstockSource> exdInstockSource) {
+        String fbillno = exdInstockSource.get(0).getFbillno();
+        Order order = orderService.selectByNo(fbillno);
+        if (!Cools.isEmpty(order)&&order.getStatus()>1) {
+            if (order.getSettle() > 1L) {
+                throw new CoolException(fbillno + "鍗曟嵁姝e湪浣滀笟涓紝鏃犳硶鍒犻櫎");
+            }
+            orderService.remove(order.getId());
+        }
+        return SUCCESS;
+    }
+
 }

--
Gitblit v1.9.1