From a9f7a73efb4fc132ad2c9a353d300b708430e961 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 22 十月 2025 17:16:16 +0800
Subject: [PATCH] 3.销售订单出库上报完善 4.普通订单上报

---
 src/main/java/com/zy/third/task/handler/OrderHandler.java        |    2 
 src/main/java/com/zy/asrs/entity/OrderDetl.java                  |   43 +++++-----
 src/main/java/com/zy/asrs/service/OrderDetlService.java          |    2 
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java      |   33 +++++--
 src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java            |    2 
 src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java |    6 +
 src/main/java/com/zy/asrs/task/OrderSyncScheduler.java           |   31 +++++++
 src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java     |   64 +++++++++++++++-
 src/main/java/com/zy/asrs/controller/OrderDetlController.java    |   14 ++
 src/main/webapp/static/js/orderDetl/orderDetl.js                 |    5 
 src/main/resources/mapper/asrs/OrderDetlMapper.xml               |   10 ++
 11 files changed, 170 insertions(+), 42 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
index 1c3cd11..f245851 100644
--- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -39,14 +39,22 @@
                   @RequestParam(required = false)String orderByField,
                   @RequestParam(required = false)String orderByType,
                   @RequestParam Map<String, Object> param){
+
         EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
-        excludeTrash(param);
-        convert(param, wrapper);
+        if(!Cools.isEmpty(param.get("abnormal"))&&param.get("abnormal").equals("1")){
+            wrapper.addFilter("anfme < qty");
+        }else{
+            param.remove("abnormal");
+            excludeTrash(param);
+            convert(param, wrapper);
+        }
         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
             wrapper.orderBy("create_time", false);
         }
+
         wrapper.eq("status", 1);
-        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
+        Page<OrderDetl> orderDetlPage = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
+        return R.ok(orderDetlPage);
     }
 
     @RequestMapping(value = "/orderDetl/pakout/list/auth")
diff --git a/src/main/java/com/zy/asrs/entity/OrderDetl.java b/src/main/java/com/zy/asrs/entity/OrderDetl.java
index 116f4c8..f0e9733 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.enums.IdType;
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
+import com.zy.asrs.service.DocTypeService;
 import com.zy.asrs.service.OrderService;
 import com.zy.common.utils.Synchro;
 import com.zy.system.entity.User;
@@ -73,6 +74,12 @@
     private Double qty;
 
     /**
+     * 涓婃姤鏁伴噺
+     */
+    @ApiModelProperty(value= "涓婃姤鏁伴噺")
+    private Double units=0.0;
+
+    /**
      * 鍟嗗搧缂栫爜
      */
     @ApiModelProperty(value= "鍟嗗搧缂栫爜")
@@ -132,11 +139,6 @@
     @ApiModelProperty(value= "sku")
     private String sku;
 
-    /**
-     * 鍗曚綅閲�
-     */
-    @ApiModelProperty(value= "鍗曚綅閲�")
-    private Double units;
 
     /**
      * 鏉$爜
@@ -216,9 +218,9 @@
     private String suppCode;
 
     /**
-     * 鏄惁鎵规 1: 鏄�  0: 鍚�
+     * 绾㈣摑瀛�
      */
-    @ApiModelProperty(value= "鏄惁鎵规 1: 鏄�  0: 鍚�  ")
+    @ApiModelProperty(value= "绾㈣摑瀛�")
     @TableField("be_batch")
     private Integer beBatch;
 
@@ -243,9 +245,9 @@
     private Integer source;
 
     /**
-     * 瑕佹眰妫�楠� 1: 鏄�  0: 鍚�
+     * 涓婃姤娆℃暟
      */
-    @ApiModelProperty(value= "瑕佹眰妫�楠� 1: 鏄�  0: 鍚�  ")
+    @ApiModelProperty(value= "涓婃姤娆℃暟")
     private Integer inspect;
 
     /**
@@ -362,6 +364,17 @@
         return "";
     }
 
+    public String getDanger$(){
+        DocTypeService service = SpringUtils.getBean(DocTypeService.class);
+        OrderService orderServicer=SpringUtils.getBean(OrderService.class);
+        Order order = orderServicer.selectByNo(this.orderNo);
+        DocType docType = service.selectById(order.getDocType());
+        if (!Cools.isEmpty(docType)){
+            return String.valueOf(docType.getDocName());
+        }
+        return null;
+    }
+
     public String getBeBatch$(){
         if (null == this.beBatch){ return null; }
         switch (this.beBatch){
@@ -397,18 +410,6 @@
                 return "鍚�";
             default:
                 return String.valueOf(this.inspect);
-        }
-    }
-
-    public String getDanger$(){
-        if (null == this.danger){ return null; }
-        switch (this.danger){
-            case 1:
-                return "鏄�";
-            case 0:
-                return "鍚�";
-            default:
-                return String.valueOf(this.danger);
         }
     }
 
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index a5a2736..5a18d11 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.mapper;
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.Order;
 import com.zy.asrs.entity.OrderDetl;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -41,4 +42,5 @@
 
     int increaseWorkQtytest(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("anfme")Double anfme);
 
+    List<OrderDetl> reportERPOrderDetl ();
 }
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index d82c544..adc3b22 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -43,4 +43,6 @@
 
 
     boolean increaseWorkQtytest(String orderNo, String matnr, String batch, Double anfme);
+
+    List<OrderDetl> reportERPOrderDetl();
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
index dd11979..099f918 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -9,6 +9,7 @@
 import com.zy.asrs.service.OrderDetlService;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 
 @Service("orderDetlService")
@@ -119,4 +120,9 @@
     public boolean increaseWorkQtytest(String orderNo, String matnr, String batch, Double anfme) {
         return this.baseMapper.increaseWorkQtytest(orderNo, matnr, batch, anfme) > 0;
     }
+
+    @Override
+    public List<OrderDetl> reportERPOrderDetl() {
+        return this.baseMapper.reportERPOrderDetl();
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index d93afce..bf46a96 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -2,7 +2,9 @@
 
 import com.core.common.Cools;
 import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.OrderDetlService;
 import com.zy.asrs.service.OrderService;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.OrderSyncHandler;
@@ -28,6 +30,8 @@
     private OrderService orderService;
     @Autowired
     private ApiLogService apiLogService;
+    @Autowired
+    private OrderDetlService orderDetlService;
 
     @Scheduled(cron = "0 0 1 * * ? ")
     public void clearApiLog(){
@@ -48,6 +52,9 @@
         if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
             List<Order> orders = orderService.selectComplete();
             for (Order order : orders) {
+                if(order.getDocType()== 81){
+                    continue;
+                }
                 try {
                     ReturnT<String> result = orderSyncHandler.start(order);
                     if (!result.isSuccess()) {
@@ -61,4 +68,28 @@
         }
     }
 
+    /**
+     * 閿�鍞嚭搴撹鍗曟槑缁嗗畬鎴愪笂鎶�
+     */
+    @Scheduled(cron = "0/5 * * * * ? ")
+    @Async("orderThreadPool")
+    public void completeAndReport1(){
+        String erpReport = Parameter.get().getErpReport();
+        if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
+            List<OrderDetl> orderDetls = orderDetlService.reportERPOrderDetl();
+            for (OrderDetl orderDetl : orderDetls) {
+                Order order = orderService.selectByNo(orderDetl.getOrderNo());
+                try {
+                    ReturnT<String> result = orderSyncHandler.start1(order, orderDetl);
+                    if (!result.isSuccess()) {
+                        log.error("鍗曟嵁鏄庣粏[orderNo={}],[matnr={}],[batch={}]涓婃姤erp澶辫触", orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch());
+                    }
+                }catch (Exception e){
+                    e.printStackTrace();
+                    log.error("鍗曟嵁鏄庣粏[orderNo={}],[matnr={}],[batch={}]涓婃姤erp澶辫触", orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch());
+                }
+            }
+        }
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index 4bf9fec..9903c31 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.task.handler;
 
+import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.DocType;
@@ -43,7 +44,6 @@
     @Autowired
     private ExdInstockTargetService exdInstockTargetService;
 
-
     @Autowired
     private ExdOutstockTargetService exdOutstockTargetService;
 
@@ -54,7 +54,7 @@
             return SUCCESS;
         }
         List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
-        if (orderDetls.isEmpty()){
+        if (orderDetls.isEmpty()) {
             return SUCCESS;
         }
         // 鍏ュ簱瀹屾垚涓婃姤
@@ -85,8 +85,6 @@
                 exdOutstockTarget.setFbillno(orderDetl.getOrderNo());
                 if (order.getDocType() == 42) {
                     exdOutstockTarget.setFtrantype(41);
-                } else if (order.getDocType() == 21) {
-                    exdOutstockTarget.setFtrantype(81);
                 } else {
                     exdOutstockTarget.setFtrantype(order.getDocType().intValue());
                 }
@@ -106,4 +104,62 @@
         return SUCCESS;
     }
 
+    @Transactional
+    public ReturnT<String> start1(Order order, OrderDetl orderDetl) {
+        DocType docType = docTypeService.selectById(order.getDocType());
+        if (null == docType) {
+            return SUCCESS;
+        }
+        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+        if (orderDetls.isEmpty()) {
+            return SUCCESS;
+        }
+
+        double count = orderDetl.getQty() - (Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits());
+        if (docType.getPakout() == 1) {
+            // 鍑哄簱瀹屾垚涓婃姤
+            ExdOutstockTarget exdOutstockTarget = null;
+            exdOutstockTarget = new ExdOutstockTarget();
+            //璁㈠崟鍐呯爜
+            exdOutstockTarget.setFinterid(orderDetl.getDeadWarn());
+            //鍗曞彿 = erp璁㈠崟鍙�+鐗╂枡缂栧彿+涓婃姤娆℃暟
+            exdOutstockTarget.setFbillno(orderDetl.getOrderNo() + "--" + orderDetl.getMatnr() + "--" + orderDetl.getInspect());
+
+            //閮ㄩ棬ID
+            exdOutstockTarget.setFdeptid(0);
+            //渚涘簲鍟�/瀹㈡埛ID
+            exdOutstockTarget.setFsupplyid(0);
+            //鍒跺崟鐢ㄦ埛ID
+            exdOutstockTarget.setFbillerid(0);
+            //缁嗚〃ID
+            exdOutstockTarget.setFentryid(0);
+            //鐗╂枡ID
+            exdOutstockTarget.setFitemid(0);
+            //婧愬崟鏁伴噺
+            exdOutstockTarget.setFqtymust(0.0);
+            //鍑哄簱鏁伴噺
+            //鍗曟嵁绫诲瀷
+            exdOutstockTarget.setFtrantype(21);
+
+            //鍗曟嵁鏃ユ湡
+            exdOutstockTarget.setFdate(DateUtils.convert(order.getOrderTime()));
+            //绾㈣摑瀛�
+            exdOutstockTarget.setFrob(orderDetl.getBeBatch());
+            //鎿嶄綔鐢ㄦ埛
+            exdOutstockTarget.setFuserid(Integer.getInteger(orderDetl.getColor()));
+            //鍐欏叆鏃堕棿
+            exdOutstockTarget.setWritetime(new Date());
+            //鍐欏叆鑰�
+            exdOutstockTarget.setWritor("WMS");
+            //鐘舵��
+            exdOutstockTarget.setStatus(0);
+            if (exdOutstockTargetService.insert(exdOutstockTarget)) {
+                orderDetl.setInspect((Cools.isEmpty(orderDetl.getInspect()) ? 1 : (orderDetl.getInspect() + 1)));
+                orderDetl.setUnits(count + (Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits()));
+                orderDetlService.updateById(orderDetl);
+            }
+        }
+        return SUCCESS;
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 59d3db1..a8c9330 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -455,21 +455,32 @@
                 exdInstockTarge.setFtrantype(21);
                 exdInstockTarge.setFdate(new Date());
                 exdInstockTarge.setFrob(1);
-
-                exdInstockTarge.setFqty(wrkDetl.getAnfme());
-                exdInstockTarge.setFbatchno(bacode.getBatchno());
-                exdInstockTarge.setFsourcebillno(bacode.getIcmono());
-                exdInstockTarge.setFsourcetrantype(85);
-
-                exdInstockTarge.setFentryid(i);
-                exdInstockTarge.setFsmanagerid(Integer.valueOf(wrkDetl.getColor()));
-                exdInstockTarge.setFfmanagerid(Integer.valueOf(wrkDetl.getColor()));
+                exdInstockTarge.setFdeptid(7502);
                 exdInstockTarge.setFbillerid(Integer.valueOf(wrkDetl.getColor()));
+                exdInstockTarge.setFfmanagerid(Integer.valueOf(wrkDetl.getColor()));
+                exdInstockTarge.setFsmanagerid(Integer.valueOf(wrkDetl.getColor()));
+                exdInstockTarge.setFentryid(i);
                 exdInstockTarge.setFitemid(Integer.parseInt(wrkDetl.getSku()));
-
+                exdInstockTarge.setFqty(wrkDetl.getAnfme());
+                //鍗曚环
+                exdInstockTarge.setFprice(0.0);
+                exdInstockTarge.setFbatchno(bacode.getBatchno());
+                //鍗曚环ID
+                exdInstockTarge.setFunitid(0);
+                //婧愬崟鍙�
+                exdInstockTarge.setFsourcebillno(bacode.getIcmono());
+                //婧愬崟缁嗚〃ID
                 exdInstockTarge.setFsourceentryid(i);
+                //婧愬崟鍗曟嵁绫诲瀷
+                exdInstockTarge.setFsourcetrantype(85);
+                //搴撲綅ID
+                exdInstockTarge.setFdcspid(0);
+                //浠撳簱ID
+
+                exdInstockTarge.setFdcstockid(wrkDetl.getBrand());
+
                 //exdInstockTarge.setFdcspid(wrkMast.getLocNo());
-                //exdInstockTarge.setFdcstockid(wrkDetl.getBrand());
+
 
                 exdInstockTarge.setBarcode(wrkDetl.getBatch());
                 exdInstockTarge.setGross(bacode.getGross());
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..b48cf7d 100644
--- a/src/main/java/com/zy/third/task/handler/OrderHandler.java
+++ b/src/main/java/com/zy/third/task/handler/OrderHandler.java
@@ -134,7 +134,7 @@
             orderDetl.setStatus(1);
             orderDetl.setQty(0.0D);
             orderDetl.setDeadWarn(detlDto.getFInterID());
-            orderDetl.setInspect(detlDto.getFrob());
+            orderDetl.setBeBatch(detlDto.getFrob());
             if (!orderDetlService.insert(orderDetl)) {
                 throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
             }
diff --git a/src/main/resources/mapper/asrs/OrderDetlMapper.xml b/src/main/resources/mapper/asrs/OrderDetlMapper.xml
index e2b9d92..44bb793 100644
--- a/src/main/resources/mapper/asrs/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/asrs/OrderDetlMapper.xml
@@ -112,6 +112,16 @@
         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
     </select>
 
+    <select id="reportERPOrderDetl" resultMap="BaseResultMap">
+        select d.* from man_order_detl d
+        LEFT JOIN man_order o on o.order_no = d.order_no
+        where 1=1
+          and o.doc_type = 81
+          and d.work_qty = d.qty
+          and d.qty = d.anfme
+          and d.qty > d.units
+    </select>
+
     <select id="getPakoutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer">
         select
         count(1)
diff --git a/src/main/webapp/static/js/orderDetl/orderDetl.js b/src/main/webapp/static/js/orderDetl/orderDetl.js
index f6edb02..6a825c4 100644
--- a/src/main/webapp/static/js/orderDetl/orderDetl.js
+++ b/src/main/webapp/static/js/orderDetl/orderDetl.js
@@ -45,6 +45,7 @@
             {type: 'checkbox'}
             // ,{field: 'id', align: 'center',title: 'ID'}
             ,{field: 'orderNo', align: 'center',title: '璁㈠崟缂栫爜',sort:true}
+            ,{field: 'danger$', align: 'center',title: '璁㈠崟绫诲瀷', hide: false}
             ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜',sort:true}
             ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О',sort:true}
             ,{field: 'anfme', align: 'center',title: '鏁伴噺',sort:true}
@@ -55,7 +56,7 @@
             ,{field: 'brand', align: 'center',title: '浜х嚎',sort:true, hide: true}
             ,{field: 'sku', align: 'center',title: '绛夌骇',sort:true, hide: true}
             ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
-            ,{field: 'danger$', align: 'center',title: '璁㈠崟绫诲瀷', hide: true}
+
 
             ,{field: 'anfme$', align: 'center', title: '鐘舵��', templet: '#settleTpl',  minWidth: 160, width: 160},
             // ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
@@ -66,7 +67,7 @@
             // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
             {field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
 
-            ,{field: 'inspect$', align: 'center',title: '涓婃姤娆℃暟', width: 100}
+            ,{field: 'inspect', align: 'center',title: '涓婃姤娆℃暟', width: 100}
             // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
             // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
             // ,{field: 'memo', align: 'center',title: '澶囨敞'}

--
Gitblit v1.9.1