From 3989e356b6b8bcd31e2d2981ac78e41f8ebbdfa5 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 19 十月 2022 10:02:31 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OrderController.java    |    4 +++-
 src/main/resources/mapper/WrkDetlMapper.xml                  |    8 ++++----
 src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java |   18 ++++++++++++++++--
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java  |    4 ++--
 src/main/java/com/zy/common/web/BaseController.java          |   11 ++++-------
 src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java   |    2 +-
 src/main/java/com/zy/asrs/controller/OutController.java      |    2 +-
 7 files changed, 31 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index 4741832..1ebddbd 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -101,7 +101,9 @@
     @RequestMapping(value = "/order/detl/all/auth")
     @ManagerAuth
     public R head(@RequestParam Long orderId){
-        return R.ok().add(orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_id", orderId)));
+        List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_id", orderId));
+        orderDetls.removeIf(next -> next.getQty() > 0);
+        return R.ok().add(orderDetls);
     }
 
     @RequestMapping(value = "/order/form/add/auth")
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 14b79e7..50e7ad1 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -113,7 +113,7 @@
         // 璁㈠崟棰勬牎楠�  ===>> 1.璁㈠崟鐘舵�侊紱 2.璁㈠崟甯﹀嚭鏁伴噺
         List<OrderDto> orderDtos = new ArrayList<>();
         for (LocDto locDto : locDtos) {
-            if (!isJSON(locDto.getOrderNo())) {
+            if (isJSON(locDto.getOrderNo())) {
                 if (Cools.isEmpty(locDto.getOrderNo())) { continue; }
                 OrderDto orderDto = new OrderDto(locDto.getOrderNo(), locDto.getMatnr(), locDto.getAnfme());
                 if (OrderDto.has(orderDtos, orderDto)) {
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index c50a9df..319c1a0 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.core.common.Cools;
@@ -15,6 +16,7 @@
 import com.zy.common.model.DetlDto;
 import com.zy.common.model.OrderDto;
 import com.zy.common.model.OrderMergeVo;
+import com.zy.common.web.BaseController;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -80,15 +82,27 @@
             if (null != docType && docType.getPakout() == 1) {
                 // 閲嶇粍鏄庣粏
                 if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
-                    throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
+                    throw new CoolException("閲嶇粍鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
                 }
                 List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo);
                 for (WrkDetl wrkDetl : wrkDetls) {
                     OrderDetl orderDetl = new OrderDetl();
                     orderDetl.sync(wrkDetl);
-                    orderDetl.setQty(orderDetl.getAnfme());
                     orderDetl.setOrderId(order.getId());
                     orderDetl.setOrderNo(orderNo);
+                    if (BaseController.isJSON(wrkDetl.getOrderNo())) {
+                        orderDetl.setQty(orderDetl.getAnfme());
+                    } else {
+                        // 璁㈠崟鍚堝苟鍑哄簱
+                        List<OrderDto> orderDtoList = JSON.parseArray(wrkDetl.getOrderNo(), OrderDto.class);
+                        for (OrderDto one : orderDtoList) {
+                            if (one.getOrderNo().equals(orderNo)) {
+                                orderDetl.setAnfme(one.getAnfme());
+                                orderDetl.setQty(one.getAnfme());
+                                break;
+                            }
+                        }
+                    }
                     orderDetl.setStatus(1);
                     orderDetl.setCreateTime(order.getCreateTime());
                     orderDetl.setCreateBy(order.getCreateBy());
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 2a8104d..ee7c48f 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -351,7 +351,7 @@
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
             // 淇敼璁㈠崟鏄庣粏
-            if (!BaseController.isJSON(locDto.getOrderNo())) {
+            if (BaseController.isJSON(locDto.getOrderNo())) {
                 OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
                 if (orderDetl == null) {
                     orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
@@ -828,7 +828,7 @@
         List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
         for (WrkDetl wrkDetl : wrkDetls) {
             if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-                if (!BaseController.isJSON(wrkDetl.getOrderNo())) {
+                if (BaseController.isJSON(wrkDetl.getOrderNo())) {
                     if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
                         throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
                     }
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index 7600ab2..0fbb782 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -118,7 +118,7 @@
             }
             // 淇敼璁㈠崟鐘舵�� 浣滀笟涓� ===>> 宸插畬鎴�
             for (WrkDetl wrkDetl : wrkDetlsKeyOrder) {
-                if (!BaseController.isJSON(wrkDetl.getOrderNo())) {
+                if (BaseController.isJSON(wrkDetl.getOrderNo())) {
                     orderService.checkComplete(wrkDetl.getOrderNo());
                 } else {
                     // 璁㈠崟鍚堝苟鍑哄簱
diff --git a/src/main/java/com/zy/common/web/BaseController.java b/src/main/java/com/zy/common/web/BaseController.java
index 01ce52c..c0455b4 100644
--- a/src/main/java/com/zy/common/web/BaseController.java
+++ b/src/main/java/com/zy/common/web/BaseController.java
@@ -1,6 +1,5 @@
 package com.zy.common.web;
 
-import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
@@ -146,14 +145,12 @@
 
     public static boolean isJSON(String str) {
         if (Cools.isEmpty(str)) {
-            return false;
+            return true;
         } else {
-            try {
-                JSON.parse(str);
-                return true;
-            } catch (Exception e) {
+            str = str.trim();
+            if (str.startsWith("{") && str.endsWith("}")) {
                 return false;
-            }
+            } else return !str.startsWith("[") || !str.endsWith("]");
         }
     }
 }
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index a9a84f2..fbdfeef 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -85,12 +85,12 @@
         select awd.*
         from asr_wrk_detl awd
         left join asr_wrk_mast awm on awd.wrk_no = awm.wrk_no and awd.io_time = awm.io_time
-        where order_no = #{orderNo}
+        where order_no like '%' + #{orderNo} + '%'
         union
         select distinct awdl.*
         from asr_wrk_detl_log awdl
         left join asr_wrk_mast_log awml on awdl.wrk_no = awml.wrk_no and awdl.io_time = awml.io_time
-        where awdl.order_no = #{orderNo}
+        where awdl.order_no like '%' + #{orderNo} + '%'
         and (awml.manu_type is null or awml.manu_type != '鎵嬪姩鍙栨秷')
     </select>
 
@@ -98,13 +98,13 @@
         select awd.wrk_no, awd.io_time, awd.matnr, sum(awd.anfme) as anfme
         from asr_wrk_detl awd
         left join asr_wrk_mast awm on awd.wrk_no = awm.wrk_no and awd.io_time = awm.io_time
-        where order_no = #{orderNo}
+        where order_no like '%' + #{orderNo} + '%'
         group by awd.wrk_no, awd.io_time, awd.matnr
         union
         select distinct awdl.wrk_no, awdl.io_time, awdl.matnr, sum(awdl.anfme) as anfme
         from asr_wrk_detl_log awdl
         left join asr_wrk_mast_log awml on awdl.wrk_no = awml.wrk_no and awdl.io_time = awml.io_time
-        where awdl.order_no = #{orderNo}
+        where awdl.order_no like '%' + #{orderNo} + '%'
         and (awml.manu_type is null or awml.manu_type != '鎵嬪姩鍙栨秷')
         group by awdl.wrk_no, awdl.io_time, awdl.matnr
     </select>

--
Gitblit v1.9.1