From 2f6502b1ac9e1a979a8e01c9c9763d9c327e522b Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期五, 20 十二月 2024 08:52:34 +0800
Subject: [PATCH] 切换环境至dev并优化单据处理逻辑

---
 src/main/java/com/zy/asrs/controller/OrderController.java |  821 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 757 insertions(+), 64 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index cf452b0..825752d 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -13,6 +14,7 @@
 import com.zy.asrs.service.*;
 import com.zy.common.model.DetlDto;
 import com.zy.common.web.BaseController;
+import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.DataFormatter;
@@ -29,6 +31,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Slf4j
 @RestController
@@ -52,10 +55,56 @@
     private LocDetlService locDetlService;
     @Autowired
     private MatService matService;
+    @Autowired
+    private AgvLocDetlService agvLocDetlService;
+    @Autowired
+    private FlowLogService flowLogService;
+
+    @GetMapping("/doc/type/list")
+    @Transactional
+    @ManagerAuth(memo = "鍏ュ簱鍗曟嵁绫诲瀷")
+    @Synchronized
+    public R docTypeList() {
+        List<DocType> result = new ArrayList<>();
+        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
+        List<Long> unDocIds = new ArrayList<>();
+        unDocIds.add(19L);
+        unDocIds.add(30L);
+        unDocIds.add(32L);
+        unDocIds.add(36L);
+        for (DocType pakin : pakins) {
+            if (!unDocIds.contains(pakin.getDocId())) {
+                result.add(pakin);
+            }
+        }
+        return R.ok().add(result);
+    }
+
+    @GetMapping("/doc/type/out/list")
+    @Transactional
+    @ManagerAuth(memo = "鍑哄簱鍗曟嵁绫诲瀷")
+    @Synchronized
+    public R docTypeOutList() {
+        List<DocType> result = new ArrayList<>();
+        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
+        List<Long> unDocIds = new ArrayList<>();
+        unDocIds.add(18L);
+        unDocIds.add(31L);
+        unDocIds.add(33L);
+        unDocIds.add(34L);
+        unDocIds.add(35L);
+        unDocIds.add(37L);
+        for (DocType pakin : pakins) {
+            if (!unDocIds.contains(pakin.getDocId())) {
+                result.add(pakin);
+            }
+        }
+        return R.ok().add(result);
+    }
 
     @RequestMapping(value = "/order/nav/list/auth")
     @ManagerAuth
-    public R navList(@RequestParam(required = false) String orderNo){
+    public R navList(@RequestParam(required = false) String orderNo) {
         EntityWrapper<Order> wrapper = new EntityWrapper<>();
         if (!Cools.isEmpty(orderNo)) {
             wrapper.like("order_no", orderNo);
@@ -83,15 +132,17 @@
 
     @RequestMapping(value = "/order/head/page/auth")
     @ManagerAuth
-    public R head(@RequestParam(defaultValue = "1")Integer curr,
-                  @RequestParam(defaultValue = "10")Integer limit,
-                  @RequestParam(required = false)String orderByField,
-                  @RequestParam(required = false)String orderByType,
-                  @RequestParam Map<String, Object> param){
+    public R head(@RequestParam(defaultValue = "1") Integer curr,
+                  @RequestParam(defaultValue = "10") Integer limit,
+                  @RequestParam(required = false) String orderByField,
+                  @RequestParam(required = false) String orderByType,
+                  @RequestParam Map<String, Object> param) {
         EntityWrapper<Order> wrapper = new EntityWrapper<>();
         excludeTrash(param);
         convert(param, wrapper);
-        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+        if (!Cools.isEmpty(orderByField)) {
+            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+        } else {
             wrapper.orderBy("settle").orderBy("create_time", false);
         }
         wrapper.eq("status", 1);
@@ -101,15 +152,17 @@
     //  鎵�鏈夊叆搴撹鍗�
     @RequestMapping(value = "/order/detls/in/page/auth")
     @ManagerAuth
-    public R orderIn(@RequestParam(defaultValue = "1")Integer curr,
-                  @RequestParam(defaultValue = "10000")Integer limit,
-                  @RequestParam(required = false)String orderByField,
-                  @RequestParam(required = false)String orderByType,
-                  @RequestParam Map<String, Object> param){
+    public R orderIn(@RequestParam(defaultValue = "1") Integer curr,
+                     @RequestParam(defaultValue = "10000") Integer limit,
+                     @RequestParam(required = false) String orderByField,
+                     @RequestParam(required = false) String orderByType,
+                     @RequestParam Map<String, Object> param) {
         EntityWrapper<Order> wrapper = new EntityWrapper<>();
         excludeTrash(param);
         convert(param, wrapper);
-        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+        if (!Cools.isEmpty(orderByField)) {
+            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+        } else {
             wrapper.orderBy("settle").orderBy("create_time", false);
         }
         wrapper.eq("status", 1);
@@ -118,19 +171,31 @@
         for (DocType pakin : pakins) {
             docIds.add(pakin.getDocId());
         }
-        wrapper.in("doc_type",docIds);
+        wrapper.in("doc_type", docIds);
         return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
     //  鎵�鏈夊叆搴撹鍗曟槑缁�
     @RequestMapping(value = "/order/detls/pakin/page/auth")
     @ManagerAuth
-    public R orderDetls(@RequestParam(defaultValue = "1")Integer curr,
-                        @RequestParam(defaultValue = "100")Integer limit,
-                        @RequestParam(required = false)String orderByField,
-                        @RequestParam(required = false)String orderByType,
-                        @RequestParam Map<String, Object> param){
-        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class)));
+    public R orderDetls(@RequestParam(defaultValue = "1") Integer curr,
+                        @RequestParam(defaultValue = "100") Integer limit,
+                        @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);
+//        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class)));
+        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
+        List<Long> docIds = new ArrayList<>();
+        for (DocType pakin : pakins) {
+            if (pakin.getDocId() != 32) {
+                docIds.add(pakin.getDocId());
+            }
+        }
+        wrapper.in("source", docIds);
+        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
 //        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
 //        excludeTrash(param);
 //        convert(param, wrapper);
@@ -152,17 +217,157 @@
 //        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
+    @RequestMapping(value = "/order/detls/pakin")
+    @ManagerAuth
+    public R orderDetlsIn(@RequestParam(defaultValue = "1") Integer curr,
+                          @RequestParam(defaultValue = "100") Integer limit,
+                          @RequestParam(required = false) String orderByField,
+                          @RequestParam(required = false) String orderByType,
+                          @RequestParam(required = false) Long docType,
+                          @RequestParam Map<String, Object> param) {
+        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
+        param.remove("docType");
+        excludeTrash(param);
+        convert(param, wrapper);
+//        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class)));
+        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
+        List<Long> docIds = new ArrayList<>();
+        List<Long> unDocIds = new ArrayList<>();
+        unDocIds.add(19L);
+        unDocIds.add(30L);
+        unDocIds.add(32L);
+        unDocIds.add(36L);
+        for (DocType pakin : pakins) {
+            if (!unDocIds.contains(pakin.getDocId())) {
+                docIds.add(pakin.getDocId());
+            }
+        }
+
+        if (docIds.size() > 0) {
+            if (docType > 0) {
+                wrapper.in("source", docType);
+            } else {
+                wrapper.in("source", docIds);
+            }
+
+        } else {
+            wrapper.in("source", 0);
+        }
+
+        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
+    }
+
+    @RequestMapping(value = "/order/wait/detls/pakin/page/auth")
+    @ManagerAuth
+    public R waitOrderDetls(@RequestParam(defaultValue = "1") Integer curr,
+                            @RequestParam(defaultValue = "100") Integer limit,
+                            @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);
+//        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class)));
+        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
+        List<Long> docIds = new ArrayList<>();
+        for (DocType pakin : pakins) {
+            if (pakin.getDocId() == 36) {
+                docIds.add(pakin.getDocId());
+            }
+        }
+        wrapper.in("source", docIds);
+        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
+    }
+
+    //  鎵�鏈夊叆搴撹鍗曟槑缁�
+    @RequestMapping(value = "/order/bcp/detls/pakin/page/auth")
+    @ManagerAuth
+    public R bcpOrderDetls(@RequestParam(defaultValue = "1") Integer curr,
+                           @RequestParam(defaultValue = "100") Integer limit,
+                           @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);
+//        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class)));
+        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1));
+        List<Long> docIds = new ArrayList<>();
+        for (DocType pakin : pakins) {
+            if (pakin.getDocId() == 32) {
+                docIds.add(pakin.getDocId());
+            }
+        }
+        wrapper.in("source", docIds);
+        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
+    }
+
+    @RequestMapping(value = "/order/bcpDb/detls/pakin/page/auth")
+    @ManagerAuth
+    public R bcpDbOrderDetls(@RequestParam(defaultValue = "1") Integer curr,
+                             @RequestParam(defaultValue = "100") Integer limit,
+                             @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);
+//        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class)));
+        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
+        List<Long> docIds = new ArrayList<>();
+        for (DocType pakin : pakins) {
+            if (pakin.getDocId() == 33) {
+                docIds.add(pakin.getDocId());
+            }
+        }
+        wrapper.in("source", docIds);
+        Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
+        for (OrderDetl record : page.getRecords()) {
+            Double sumAnfme = agvLocDetlService.getSumAnfmeDb(record.getMatnr(), record.getThreeCode(), 1);
+            record.setStock(sumAnfme == null ? 0 : sumAnfme);
+        }
+        return R.ok(page);
+    }
+
+    @RequestMapping(value = "/order/backStocks/detls/pakin/page/auth")
+    @ManagerAuth
+    public R backStocksOrderDetls(@RequestParam(defaultValue = "1") Integer curr,
+                                  @RequestParam(defaultValue = "100") Integer limit,
+                                  @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);
+//        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class)));
+        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
+        List<Long> docIds = new ArrayList<>();
+        for (DocType pakin : pakins) {
+            if (pakin.getDocId() == 17) {
+                docIds.add(pakin.getDocId());
+            }
+        }
+        wrapper.in("source", docIds);
+        Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
+        for (OrderDetl record : page.getRecords()) {
+            Double sumAnfme = agvLocDetlService.getSumAnfmeback(record.getMatnr(), record.getThreeCode(), 1);
+            record.setStock(sumAnfme == null ? 0 : sumAnfme);
+        }
+        return R.ok(page);
+    }
+
     @RequestMapping(value = "/order/detl/all/auth")
     @ManagerAuth
-    public R head(@RequestParam Long orderId){
+    public R head(@RequestParam Long orderId) {
         return R.ok().add(orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_id", orderId)));
     }
 
     @RequestMapping(value = "/order/form/add/auth")
     @ManagerAuth(memo = "鎵嬪姩娣诲姞璁㈠崟")
     @Transactional
-    public R formAdd(@RequestBody OrderDomainParam param){
+    public R formAdd(@RequestBody OrderDomainParam param) {
         Order order = orderService.selectByNo(param.getOrderNo());
+        long flowId = snowflakeIdWorker.nextId();
         if (order != null) {
             return R.error("鍗曟嵁缂栧彿宸插瓨鍦�");
         }
@@ -207,18 +412,52 @@
             throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触");
         }
         List<DetlDto> list = new ArrayList<>();
+        Boolean flag = false;
         for (OrderDetl orderDetl : param.getOrderDetlList()) {
+            if (Cools.isEmpty(orderDetl.getProcessSts())) {
+                orderDetl.setProcessSts(3);
+            }
+            if (orderDetl.getProcessSts() == 1) {
+                flag = true;
+            }
+            if (param.getDocType() != 32) {
+                orderDetl.setProcessSts(3);
+            }
             DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
             if (DetlDto.has(list, dto)) {
-                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime());
+                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getThreeCode().trim(), orderDetl.getDeadTime());
+                Double anfme = item.getAnfme();
                 item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                 if (!orderDetlService.updateById(item)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
                 }
+                // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+//                FlowLog flowLog = new FlowLog();
+//                flowLog.setFid(String.valueOf(flowId));
+//                flowLog.setOpType(2L);
+//                flowLog.setOrderNo(param.getOrderNo());
+//                flowLog.setThreeCode(orderDetl.getThreeCode().trim());
+//                flowLog.setMatnr(orderDetl.getMatnr());
+//                flowLog.setMaktx(orderDetl.getMaktx());
+//                flowLog.setOrderPrevious(anfme);
+//                flowLog.setOrderCurrent(anfme + orderDetl.getAnfme());
+//                flowLog.setOrderChanged(orderDetl.getAnfme());
+//                flowLog.setQtyPrevious(orderDetl.getQty());
+//                flowLog.setQtyCurrent(orderDetl.getQty());
+//                flowLog.setQtyChanged(0.0D);
+//                flowLog.setUserId(getUserId());
+//                flowLog.setAppeTime(now);
+//                if (!flowLogService.insert(flowLog)) {
+//                    throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//                }
             } else {
                 list.add(dto);
+                if (!Cools.isEmpty(orderDetl.getThreeCode())) {
+                    orderDetl.setThreeCode(orderDetl.getThreeCode().trim());
+                }
                 orderDetl.setOrderId(order.getId());
                 orderDetl.setOrderNo(order.getOrderNo());
+                orderDetl.setSource(param.getDocType().intValue());
                 orderDetl.setCreateBy(getUserId());
                 orderDetl.setCreateTime(now);
                 orderDetl.setUpdateBy(getUserId());
@@ -228,26 +467,218 @@
                 if (!orderDetlService.insert(orderDetl)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
                 }
+//                // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+//                FlowLog flowLog = new FlowLog();
+//                flowLog.setFid(String.valueOf(flowId));
+//                flowLog.setOpType(1L);
+//                flowLog.setOrderNo(param.getOrderNo());
+//                flowLog.setThreeCode(orderDetl.getThreeCode().trim());
+//                flowLog.setMatnr(orderDetl.getMatnr());
+//                flowLog.setMaktx(orderDetl.getMaktx());
+//                flowLog.setOrderPrevious(0.0D);
+//                flowLog.setOrderCurrent(orderDetl.getAnfme());
+//                flowLog.setOrderChanged(orderDetl.getAnfme());
+//                flowLog.setQtyPrevious(0.0D);
+//                flowLog.setQtyCurrent(0.0D);
+//                flowLog.setQtyChanged(0.0D);
+//                flowLog.setUserId(getUserId());
+//                flowLog.setAppeTime(now);
+//                if (!flowLogService.insert(flowLog)) {
+//                    throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//                }
             }
         }
+        if (param.getDocType().intValue() == 32) {
+            order = new Order(
+                    String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                    "DB" + param.getOrderNo(),    // 璁㈠崟缂栧彿
+                    DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
+                    33L,    // 鍗曟嵁绫诲瀷
+                    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,    // 鐘舵��
+                    getUserId(),    // 娣诲姞浜哄憳
+                    now,    // 娣诲姞鏃堕棿
+                    getUserId(),    // 淇敼浜哄憳
+                    now,    // 淇敼鏃堕棿
+                    null    // 澶囨敞
+            );
+            if (!orderService.insert(order)) {
+                throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟澶辫触");
+            }
+            List<DetlDto> dbList = new ArrayList<>();
+            for (OrderDetl orderDetl : param.getOrderDetlList()) {
+                DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
+                if (DetlDto.has(dbList, dto)) {
+                    OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getThreeCode().trim(), orderDetl.getDeadTime());
+                    item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
+                    if (!orderDetlService.updateById(item)) {
+                        throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟鏄庣粏妗eけ璐�");
+                    }
+                } else {
+                    dbList.add(dto);
+                    if (!Cools.isEmpty(orderDetl.getThreeCode())) {
+                        orderDetl.setThreeCode(orderDetl.getThreeCode().trim());
+                    }
+                    orderDetl.setOrderId(order.getId());
+                    orderDetl.setOrderNo(order.getOrderNo());
+                    orderDetl.setSource(33);
+                    orderDetl.setCreateBy(getUserId());
+                    orderDetl.setCreateTime(now);
+                    orderDetl.setUpdateBy(getUserId());
+                    orderDetl.setUpdateTime(now);
+                    orderDetl.setStatus(1);
+                    orderDetl.setQty(0.0D);
+                    if (!orderDetlService.insert(orderDetl)) {
+                        throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟鏄庣粏妗eけ璐�");
+                    }
+                }
+            }
+
+        }
+        // 宸ュ簭涓�1锛氬緟鍔犲伐 鐢熸垚鍔犲伐鍗�
+        if (flag) {
+            if (param.getDocType().intValue() == 32) {
+                order = new Order(
+                        String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                        "JG" + param.getOrderNo(),    // 璁㈠崟缂栧彿
+                        DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
+                        35L,    // 鍗曟嵁绫诲瀷
+                        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,    // 鐘舵��
+                        getUserId(),    // 娣诲姞浜哄憳
+                        now,    // 娣诲姞鏃堕棿
+                        getUserId(),    // 淇敼浜哄憳
+                        now,    // 淇敼鏃堕棿
+                        null    // 澶囨敞
+                );
+                if (!orderService.insert(order)) {
+                    throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟澶辫触");
+                }
+                List<DetlDto> dbList = new ArrayList<>();
+                for (OrderDetl orderDetl : param.getOrderDetlList()) {
+                    if (orderDetl.getProcessSts() != 1) continue;
+                    DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
+                    if (DetlDto.has(dbList, dto)) {
+                        OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getThreeCode().trim(), orderDetl.getDeadTime());
+                        item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
+                        if (!orderDetlService.updateById(item)) {
+                            throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟鏄庣粏妗eけ璐�");
+                        }
+                    } else {
+                        dbList.add(dto);
+                        if (!Cools.isEmpty(orderDetl.getThreeCode())) {
+                            orderDetl.setThreeCode(orderDetl.getThreeCode().trim());
+                        }
+                        orderDetl.setOrderId(order.getId());
+                        orderDetl.setOrderNo(order.getOrderNo());
+                        orderDetl.setSource(35);
+                        orderDetl.setCreateBy(getUserId());
+                        orderDetl.setCreateTime(now);
+                        orderDetl.setUpdateBy(getUserId());
+                        orderDetl.setUpdateTime(now);
+                        orderDetl.setStatus(1);
+                        orderDetl.setQty(0.0D);
+                        if (!orderDetlService.insert(orderDetl)) {
+                            throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟鏄庣粏妗eけ璐�");
+                        }
+//                        // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+//                        FlowLog flowLog = new FlowLog();
+//                        flowLog.setFid(String.valueOf(flowId));
+//                        flowLog.setOpType(1L);
+//                        flowLog.setOrderNo(param.getOrderNo());
+//                        flowLog.setThreeCode(orderDetl.getThreeCode().trim());
+//                        flowLog.setMatnr(orderDetl.getMatnr());
+//                        flowLog.setMaktx(orderDetl.getMaktx());
+//                        flowLog.setOrderPrevious(0.0D);
+//                        flowLog.setOrderCurrent(orderDetl.getAnfme());
+//                        flowLog.setOrderChanged(orderDetl.getAnfme());
+//                        flowLog.setQtyPrevious(0.0D);
+//                        flowLog.setQtyCurrent(0.0D);
+//                        flowLog.setQtyChanged(0.0D);
+//                        flowLog.setUserId(getUserId());
+//                        flowLog.setAppeTime(now);
+//                        if (!flowLogService.insert(flowLog)) {
+//                            throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//                        }
+
+                    }
+
+                }
+
+            }
+        }
+
         return R.ok("璁㈠崟娣诲姞鎴愬姛");
     }
 
     @RequestMapping(value = "/order/form/modify/auth")
     @ManagerAuth(memo = "鎵嬪姩淇敼璁㈠崟")
     @Transactional
-    public R formModify(@RequestBody OrderDomainParam param){
+    public R formModify(@RequestBody OrderDomainParam param) {
         Order order = orderService.selectById(param.getOrderId());
+        long flowId = snowflakeIdWorker.nextId();
+        int docType = param.getDocType().intValue();
         if (order == null || order.getStatus() == 0) {
             return R.error("璁㈠崟涓嶅瓨鍦�");
         }
         Date now = new Date();
         Long userId = getUserId();
+        StringBuffer tel = new StringBuffer();
+        for (OrderDetl orderDetl : param.getOrderDetlList()) {
+            tel.append(orderDetl.getThreeCode().trim()).append(";");
+        }
         // 淇敼涓绘。
         if (!param.getDocType().equals(order.getDocType())) {
             order.setDocType(param.getDocType());
             order.setUpdateBy(userId);
             order.setUpdateTime(now);
+            order.setTel(tel.toString());
             if (!orderService.updateById(order)) {
                 throw new CoolException("淇敼璁㈠崟绫诲瀷澶辫触");
             }
@@ -260,18 +691,53 @@
         }
         // 2.閲嶇粍鏁版嵁
         List<DetlDto> list = new ArrayList<>();
+
         for (OrderDetl orderDetl : param.getOrderDetlList()) {
-            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
+            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getAnfme(), orderDetl.getProcessSts());
             if (DetlDto.has(list, dto)) {
-                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime());
+                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getThreeCode().trim(), orderDetl.getDeadTime());
+                Double anfme = item.getAnfme();
                 item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                 if (!orderDetlService.updateById(item)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
                 }
+//                // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+//                FlowLog flowLog = new FlowLog();
+//                flowLog.setFid(String.valueOf(flowId));
+//                flowLog.setOpType(2L);
+//                flowLog.setOrderNo(param.getOrderNo());
+//                flowLog.setThreeCode(orderDetl.getThreeCode().trim());
+//                flowLog.setMatnr(orderDetl.getMatnr());
+//                flowLog.setMaktx(orderDetl.getMaktx());
+//                flowLog.setOrderPrevious(anfme);
+//                flowLog.setOrderCurrent(anfme + orderDetl.getAnfme());
+//                flowLog.setOrderChanged(orderDetl.getAnfme());
+//                flowLog.setQtyPrevious(orderDetl.getQty());
+//                flowLog.setQtyCurrent(orderDetl.getQty());
+//                flowLog.setQtyChanged(0.0D);
+//                flowLog.setUserId(getUserId());
+//                flowLog.setAppeTime(now);
+//                if (!flowLogService.insert(flowLog)) {
+//                    throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//                }
             } else {
+                if (docType == 35 && orderDetl.getProcessSts() == 1) {
+                    List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>()
+                            .eq("matnr", orderDetl.getMatnr())
+                            .eq("order_no", orderDetl.getOrderNo())
+                            .eq("process_sts", 3));
+                    for (AgvLocDetl agvLocDetl : agvLocDetls) {
+                        agvLocDetl.setProcessSts(1);
+                        agvLocDetlService.updateById(agvLocDetl);
+                    }
+                }
                 list.add(dto);
+                if (!Cools.isEmpty(orderDetl.getThreeCode())) {
+                    orderDetl.setThreeCode(orderDetl.getThreeCode().trim());
+                }
                 orderDetl.setOrderId(order.getId());
                 orderDetl.setOrderNo(order.getOrderNo());
+                orderDetl.setSource(docType);
                 orderDetl.setCreateBy(getUserId());
                 orderDetl.setCreateTime(now);
                 orderDetl.setUpdateBy(getUserId());
@@ -281,6 +747,25 @@
                 if (!orderDetlService.insert(orderDetl)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
                 }
+                // 娴佹按 -- 鏂板璁㈠崟鏄庣粏
+//                FlowLog flowLog = new FlowLog();
+//                flowLog.setFid(String.valueOf(flowId));
+//                flowLog.setOpType(2L);
+//                flowLog.setOrderNo(param.getOrderNo());
+//                flowLog.setThreeCode(orderDetl.getThreeCode().trim());
+//                flowLog.setMatnr(orderDetl.getMatnr());
+//                flowLog.setMaktx(orderDetl.getMaktx());
+//                flowLog.setOrderPrevious(0.0D);
+//                flowLog.setOrderCurrent(orderDetl.getAnfme());
+//                flowLog.setOrderChanged(orderDetl.getAnfme());
+//                flowLog.setQtyPrevious(orderDetl.getQty());
+//                flowLog.setQtyCurrent(orderDetl.getQty());
+//                flowLog.setQtyChanged(0.0D);
+//                flowLog.setUserId(getUserId());
+//                flowLog.setAppeTime(now);
+//                if (!flowLogService.insert(flowLog)) {
+//                    throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+//                }
             }
         }
         return R.ok("璁㈠崟淇敼鎴愬姛");
@@ -366,22 +851,24 @@
 
     @RequestMapping(value = "/order/list/auth")
     @ManagerAuth
-    public R list(@RequestParam(defaultValue = "1")Integer curr,
-                  @RequestParam(defaultValue = "10")Integer limit,
-                  @RequestParam(required = false)String orderByField,
-                  @RequestParam(required = false)String orderByType,
-                  @RequestParam Map<String, Object> param){
+    public R list(@RequestParam(defaultValue = "1") Integer curr,
+                  @RequestParam(defaultValue = "10") Integer limit,
+                  @RequestParam(required = false) String orderByField,
+                  @RequestParam(required = false) String orderByType,
+                  @RequestParam Map<String, Object> param) {
         EntityWrapper<Order> wrapper = new EntityWrapper<>();
         excludeTrash(param);
         convert(param, wrapper);
-        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+        if (!Cools.isEmpty(orderByField)) {
+            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+        }
         return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
-    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
-        for (Map.Entry<String, Object> entry : map.entrySet()){
+    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
+        for (Map.Entry<String, Object> entry : map.entrySet()) {
             String val = String.valueOf(entry.getValue());
-            if (val.contains(RANGE_TIME_LINK)){
+            if (val.contains(RANGE_TIME_LINK)) {
                 String[] dates = val.split(RANGE_TIME_LINK);
                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
@@ -393,8 +880,8 @@
 
     @RequestMapping(value = "/order/update/auth")
     @ManagerAuth
-    public R update(Order order){
-        if (Cools.isEmpty(order) || null == order.getId()){
+    public R update(Order order) {
+        if (Cools.isEmpty(order) || null == order.getId()) {
             return R.error();
         }
         order.setUpdateBy(getUserId());
@@ -408,7 +895,7 @@
     @RequestMapping(value = "/order/delete/auth")
     @ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟")
     @Transactional
-    public R delete(@RequestParam Long orderId){
+    public R delete(@RequestParam Long orderId) {
         orderService.remove(orderId);
         return R.ok();
     }
@@ -416,14 +903,14 @@
     @RequestMapping(value = "/order/report/auth")
     @ManagerAuth(memo = "鎵嬪姩涓婁紶璁㈠崟")
     @Transactional
-    public R report(@RequestParam Long orderId){
-        orderService.report(orderId,getUser().getUsername());
+    public R report(@RequestParam Long orderId) {
+        orderService.report(orderId, getUser().getUsername());
         return R.ok();
     }
 
     @RequestMapping(value = "/order/export/auth")
     @ManagerAuth
-    public R export(@RequestBody JSONObject param){
+    public R export(@RequestBody JSONObject param) {
         EntityWrapper<Order> wrapper = new EntityWrapper<>();
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
         Map<String, Object> map = excludeTrash(param.getJSONObject("order"));
@@ -439,7 +926,7 @@
         wrapper.like("id", condition);
         Page<Order> page = orderService.selectPage(new Page<>(0, 10), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
-        for (Order order : page.getRecords()){
+        for (Order order : page.getRecords()) {
             Map<String, Object> map = new HashMap<>();
             map.put("id", order.getId());
             map.put("value", order.getOrderNo());
@@ -452,7 +939,7 @@
     @ManagerAuth
     public R query(@RequestBody JSONObject param) {
         Wrapper<Order> wrapper = new EntityWrapper<Order>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != orderService.selectOne(wrapper)){
+        if (null != orderService.selectOne(wrapper)) {
             return R.parse(BaseRes.REPEAT).add(getComment(Order.class, String.valueOf(param.get("key"))));
         }
         return R.ok();
@@ -477,8 +964,7 @@
         try {
             if (excelVersion == 2003) {
                 book = new HSSFWorkbook(inStream);
-            }
-            else {  // 褰� excel 鏄� 2007 鏃�
+            } else {  // 褰� excel 鏄� 2007 鏃�
                 book = new XSSFWorkbook(inStream);
             }
         } catch (Exception e) {
@@ -492,22 +978,24 @@
         Date now = new Date();
         DataFormatter dataFormatter = new DataFormatter();
         for (int i = 1; i < totalRows; i++) {
+            Integer proSts = 0;
             Row row = sheet.getRow(i);
             //鍗曟嵁绫诲瀷
-            String docName =  dataFormatter.formatCellValue(row.getCell(0));
+            String docName = dataFormatter.formatCellValue(row.getCell(0)).trim();
             //鍗曟嵁缂栧彿
-            String uuid = dataFormatter.formatCellValue(row.getCell(1));
+            String uuid = dataFormatter.formatCellValue(row.getCell(1)).trim();
             //鐗╂枡鍙�
-            String matnr = dataFormatter.formatCellValue(row.getCell(2));
+            String matnr = dataFormatter.formatCellValue(row.getCell(2)).trim();
             //閿�鍞崟鍙�
-            String csocode = dataFormatter.formatCellValue(row.getCell(3));
+            String csocode = dataFormatter.formatCellValue(row.getCell(3)).trim();
             //鑷敱椤�
-            String isocode = dataFormatter.formatCellValue(row.getCell(4));
+            String isocode = dataFormatter.formatCellValue(row.getCell(4)).trim();
             // 鏁伴噺
-            if(Cools.isEmpty(dataFormatter.formatCellValue(row.getCell(5)))){
+            if (Cools.isEmpty(dataFormatter.formatCellValue(row.getCell(5)))) {
                 continue;
             }
             Double anfme = Double.parseDouble(dataFormatter.formatCellValue(row.getCell(5)));
+
             Mat mat = matService.selectByMatnr(matnr);
             if (null == mat) {
                 throw new CoolException(matnr + "鍟嗗搧缂栫爜鐨勫晢鍝佷笉瀛樺湪锛岃閲嶆柊瀵煎叆锛�");
@@ -517,17 +1005,39 @@
 
             DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", docName));
 
-            if(docType.getPakin() == 1){
-                uuid += "_I";
-            }else {
-                uuid += "_O";
+            // 鍗曟嵁绫诲瀷涓� 鍗婃垚鍝佸叆搴撳崟鎵嶆湁宸ュ簭
+            if (docType.getDocId().intValue() == 32) {
+                //宸ュ簭
+                if (Cools.isEmpty(dataFormatter.formatCellValue(row.getCell(6)))) {
+                    // 宸ュ簭涓虹┖锛岄粯璁や负鏃犻渶鍔犲伐
+                    proSts = 3;
+                } else {
+                    String processSts = dataFormatter.formatCellValue(row.getCell(6));
+                    //1: 寰呭姞宸� 2锛氬凡鍔犲伐 3锛氭棤闇�鍔犲伐
+                    if ("寰呭姞宸�".equals(processSts)) {
+                        proSts = 1;
+                    } else if ("宸插姞宸�".equals(processSts)) {
+                        proSts = 2;
+                    } else {
+                        proSts = 3;
+                    }
+                }
+            } else {
+                proSts = 3;
             }
 
-            Order order = orderService.selectByNo(uuid);
+            String odNo = uuid;
+            if (docType.getPakin() == 1) {
+                odNo += "_I";
+            } else {
+                odNo += "_O";
+            }
+
+            Order order = orderService.selectByNo(odNo);
             if (null == order) {
                 order = new Order(
                         String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
-                        uuid,    // 璁㈠崟缂栧彿
+                        odNo,    // 璁㈠崟缂栧彿
                         null,    // 鍗曟嵁鏃ユ湡
                         docType.getDocId(),    // 鍗曟嵁绫诲瀷
                         null,    // 椤圭洰缂栧彿
@@ -564,15 +1074,21 @@
                 if (!orderService.insert(order)) {
                     throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃閲嶆柊瀵煎叆锛�");
                 }
-            }else {
-                order.setSettle(order.getSettle() == 1L ? 1L : 2L );
+            } else {
+                //  鏈夊師璁㈠崟鍦ㄧ殑鎯呭喌
+                DocType orderType = docTypeService.selectById(order.getDocType());
+                if (!orderType.getDocName().equals(docName)) {
+                    throw new CoolException("鏂拌鍗曪細" + uuid + " 涓庣郴缁熷唴鐨勮鍗曞彿鐩稿悓锛屽崟鎹被鍨嬩笉鍚屻�傝纭鏂拌鍗曞崟鎹被鍨嬶紒");
+                }
+                order.setSettle(order.getSettle() == 1L ? 1L : 2L);
                 orderService.updateById(order);
             }
 
-            OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), matnr, null,csocode,isocode);
+            OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), matnr, null, csocode, isocode);
             if (orderDetl == null) {
                 orderDetl = new OrderDetl();
                 orderDetl.sync(mat);
+                orderDetl.setSource(docType.getDocId().intValue());
                 orderDetl.setBatch(null);
                 orderDetl.setAnfme(anfme);
                 orderDetl.setOrderId(order.getId());
@@ -585,14 +1101,174 @@
                 orderDetl.setDeadTime(isocode);
                 orderDetl.setStatus(1);
                 orderDetl.setQty(0.0D);
+                orderDetl.setProcessSts(proSts);
                 if (!orderDetlService.insert(orderDetl)) {
                     throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃閲嶆柊瀵煎叆锛�");
                 }
             } else {
-                if(!orderDetlService.increaseAnfme(order.getId(), matnr, null, anfme,csocode,isocode)) {
+                if (anfme < 0) {
+                    throw new CoolException("璁㈠崟鏁伴噺涓嶅厑璁镐负璐熸暟锛�");
+                }
+                if (!orderDetlService.increaseAnfme(order.getId(), matnr, null, anfme, csocode, isocode)) {
                     throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃閲嶆柊瀵煎叆锛�");
                 }
             }
+            // 鐢熸垚璋冩嫧鍗�
+            if (docType.getDocId().intValue() == 32) {
+                String dbUuid = "DB" + odNo;
+                Order order2 = orderService.selectByNo(dbUuid);
+                if (null == order2) {
+                    order2 = new Order(
+                            String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                            dbUuid,    // 璁㈠崟缂栧彿
+                            null,    // 鍗曟嵁鏃ユ湡
+                            33L,    // 鍗曟嵁绫诲瀷
+                            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,    // 鐘舵��
+                            userId,    // 娣诲姞浜哄憳
+                            now,    // 娣诲姞鏃堕棿
+                            userId,    // 淇敼浜哄憳
+                            now,    // 淇敼鏃堕棿
+                            null    // 澶囨敞
+                    );
+                    if (!orderService.insert(order2)) {
+                        throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃閲嶆柊瀵煎叆锛�");
+                    }
+                } else {
+                    order2.setSettle(order2.getSettle() == 1L ? 1L : 2L);
+                    orderService.updateById(order2);
+                }
+
+                OrderDetl orderDetl2 = orderDetlService.selectItem(order2.getId(), matnr, null, csocode, isocode);
+                if (orderDetl2 == null) {
+                    orderDetl2 = new OrderDetl();
+                    orderDetl2.sync(mat);
+                    orderDetl2.setSource(33);
+                    orderDetl2.setBatch(null);
+                    orderDetl2.setAnfme(anfme);
+                    orderDetl2.setOrderId(order2.getId());
+                    orderDetl2.setOrderNo(order2.getOrderNo());
+                    orderDetl2.setCreateBy(userId);
+                    orderDetl2.setCreateTime(now);
+                    orderDetl2.setUpdateBy(userId);
+                    orderDetl2.setUpdateTime(now);
+                    orderDetl2.setThreeCode(csocode);
+                    orderDetl2.setDeadTime(isocode);
+                    orderDetl2.setStatus(1);
+                    orderDetl2.setQty(0.0D);
+                    orderDetl2.setProcessSts(proSts);
+                    if (!orderDetlService.insert(orderDetl2)) {
+                        throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃閲嶆柊瀵煎叆锛�");
+                    }
+                } else {
+                    if (!orderDetlService.increaseAnfme(order2.getId(), matnr, null, anfme, csocode, isocode)) {
+                        throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃閲嶆柊瀵煎叆锛�");
+                    }
+                }
+            }
+
+            // 宸ュ簭涓�1锛氬緟鍔犲伐 鐢熸垚鍔犲伐鍗�
+            if (proSts == 1) {
+                if (docType.getDocId().intValue() == 32) {
+                    String dbUuid = "JG" + odNo;
+                    Order order3 = orderService.selectByNo(dbUuid);
+                    if (null == order3) {
+                        order3 = new Order(
+                                String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                dbUuid,    // 璁㈠崟缂栧彿
+                                null,    // 鍗曟嵁鏃ユ湡
+                                35L,    // 鍗曟嵁绫诲瀷
+                                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,    // 鐘舵��
+                                userId,    // 娣诲姞浜哄憳
+                                now,    // 娣诲姞鏃堕棿
+                                userId,    // 淇敼浜哄憳
+                                now,    // 淇敼鏃堕棿
+                                null    // 澶囨敞
+                        );
+                        if (!orderService.insert(order3)) {
+                            throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃閲嶆柊瀵煎叆锛�");
+                        }
+                    } else {
+                        order3.setSettle(order3.getSettle() == 1L ? 1L : 2L);
+                        orderService.updateById(order3);
+                    }
+
+                    OrderDetl orderDetl3 = orderDetlService.selectItem(order3.getId(), matnr, null, csocode, isocode);
+                    if (orderDetl3 == null) {
+                        orderDetl3 = new OrderDetl();
+                        orderDetl3.sync(mat);
+                        orderDetl3.setSource(35);
+                        orderDetl3.setBatch(null);
+                        orderDetl3.setAnfme(anfme);
+                        orderDetl3.setOrderId(order3.getId());
+                        orderDetl3.setOrderNo(order3.getOrderNo());
+                        orderDetl3.setCreateBy(userId);
+                        orderDetl3.setCreateTime(now);
+                        orderDetl3.setUpdateBy(userId);
+                        orderDetl3.setUpdateTime(now);
+                        orderDetl3.setThreeCode(csocode);
+                        orderDetl3.setDeadTime(isocode);
+                        orderDetl3.setStatus(1);
+                        orderDetl3.setQty(0.0D);
+                        orderDetl3.setProcessSts(proSts);
+                        if (!orderDetlService.insert(orderDetl3)) {
+                            throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃閲嶆柊瀵煎叆锛�");
+                        }
+                    } else {
+                        if (!orderDetlService.increaseAnfme(order3.getId(), matnr, null, anfme, csocode, isocode)) {
+                            throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃閲嶆柊瀵煎叆锛�");
+                        }
+                    }
+                }
+            }
+
         }
         return R.ok("瀵煎叆鎴愬姛");
     }
@@ -614,8 +1290,7 @@
         try {
             if (excelVersion == 2003) {
                 book = new HSSFWorkbook(inStream);
-            }
-            else {  // 褰� excel 鏄� 2007 鏃�
+            } else {  // 褰� excel 鏄� 2007 鏃�
                 book = new XSSFWorkbook(inStream);
             }
         } catch (Exception e) {
@@ -630,7 +1305,7 @@
         for (int i = 1; i < totalRows; i++) {
             Row row = sheet.getRow(i);
             //鍗曟嵁绫诲瀷
-            String docName =  dataFormatter.formatCellValue(row.getCell(0));
+            String docName = dataFormatter.formatCellValue(row.getCell(0));
             //鍗曟嵁缂栧彿
             String uuid = dataFormatter.formatCellValue(row.getCell(1));
             //鐗╂枡鍙�
@@ -644,4 +1319,22 @@
         return R.ok("瀵煎叆鎴愬姛").add(strs);
     }
 
+
+//    @RequestMapping(value = "/order/sync")
+//    @Transactional
+//    public R sync() {
+//        List<Order> orders = orderService.selectList(new EntityWrapper<Order>().isNull("tel"));
+//        for (Order order : orders) {
+//            List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+//            if (orderDetls.isEmpty()) {
+//                return R.ok();
+//            }
+//            Set<String> collect = orderDetls.stream().map(x -> x.getThreeCode()).collect(Collectors.toSet());
+//            if (!collect.isEmpty() && collect.size() > 0) {
+//                log.info("璁㈠崟鍙穥}锛屽悓姝ユ暟鎹畕}", order.getId(), collect);
+//                orderService.updateTel(order.getId(), JSON.toJSONString(collect));
+//            }
+//        }
+//        return R.ok();
+//    }
 }

--
Gitblit v1.9.1