From de8a641769b80abca23a344b521bcdfe0dbca31f Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期四, 11 十二月 2025 09:00:35 +0800
Subject: [PATCH] 入库流程功能优化

---
 src/main/webapp/views/basContainer/basContainer.html                |    2 
 /dev/null                                                           |   18 ---
 src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java   |  112 ++++++++++++++++++++++
 src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java      |   21 +++
 src/main/java/com/zy/asrs/utils/Utils.java                          |   13 ++
 src/main/java/com/zy/api/entity/CallAgvParams.java                  |    6 +
 src/main/java/com/zy/asrs/service/impl/BasContainerServiceImpl.java |    3 
 src/main/java/com/zy/asrs/entity/OrderDetlPakin.java                |   18 +++
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java       |   50 +++++-----
 src/main/java/com/zy/asrs/entity/BasContainer.java                  |    5 
 src/main/java/com/zy/asrs/enums/TaskIOType.java                     |    2 
 src/main/webapp/static/js/orderPakin/order.js                       |    3 
 12 files changed, 199 insertions(+), 54 deletions(-)

diff --git a/src/main/java/appVersion.sql b/src/main/java/appVersion.sql
deleted file mode 100644
index 870e5e6..0000000
--- a/src/main/java/appVersion.sql
+++ /dev/null
@@ -1,18 +0,0 @@
--- save appVersion record
--- mysql
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'appVersion/appVersion.html', 'appVersion绠$悊', null , '2', null , '1');
-
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'appVersion#view', '鏌ヨ', '', '3', '0', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'appVersion#btn-add', '鏂板', '', '3', '1', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'appVersion#btn-edit', '缂栬緫', '', '3', '2', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'appVersion#btn-delete', '鍒犻櫎', '', '3', '3', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'appVersion#btn-export', '瀵煎嚭', '', '3', '4', '1');
-
--- sqlserver
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'appVersion/appVersion.html', N'appVersion绠$悊', null, '2', null, '1');
-
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'appVersion#view', N'鏌ヨ', '', '3', '0', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'appVersion#btn-add', N'鏂板', '', '3', '1', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'appVersion#btn-edit', N'缂栬緫', '', '3', '2', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'appVersion#btn-delete', N'鍒犻櫎', '', '3', '3', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'appVersion#btn-export', N'瀵煎嚭', '', '3', '4', '1');
diff --git a/src/main/java/basContainer.sql b/src/main/java/basContainer.sql
deleted file mode 100644
index e1cd330..0000000
--- a/src/main/java/basContainer.sql
+++ /dev/null
@@ -1,18 +0,0 @@
--- save basContainer record
--- mysql
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basContainer/basContainer.html', 'basContainer绠$悊', null , '2', null , '1');
-
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basContainer#view', '鏌ヨ', '', '3', '0', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basContainer#btn-add', '鏂板', '', '3', '1', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basContainer#btn-edit', '缂栬緫', '', '3', '2', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basContainer#btn-delete', '鍒犻櫎', '', '3', '3', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'basContainer#btn-export', '瀵煎嚭', '', '3', '4', '1');
-
--- sqlserver
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basContainer/basContainer.html', N'basContainer绠$悊', null, '2', null, '1');
-
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basContainer#view', N'鏌ヨ', '90623', '3', '0', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basContainer#btn-add', N'鏂板', '90623', '3', '1', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basContainer#btn-edit', N'缂栬緫', '90623', '3', '2', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basContainer#btn-delete', N'鍒犻櫎', '90623', '3', '3', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'basContainer#btn-export', N'瀵煎嚭', '90623', '3', '4', '1');
diff --git a/src/main/java/checkOrder.sql b/src/main/java/checkOrder.sql
deleted file mode 100644
index 2a75258..0000000
--- a/src/main/java/checkOrder.sql
+++ /dev/null
@@ -1,18 +0,0 @@
--- save checkOrder record
--- mysql
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrder/checkOrder.html', 'checkOrder绠$悊', null , '2', null , '1');
-
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrder#view', '鏌ヨ', '', '3', '0', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrder#btn-add', '鏂板', '', '3', '1', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrder#btn-edit', '缂栬緫', '', '3', '2', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrder#btn-delete', '鍒犻櫎', '', '3', '3', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrder#btn-export', '瀵煎嚭', '', '3', '4', '1');
-
--- sqlserver
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrder/checkOrder.html', N'checkOrder绠$悊', null, '2', null, '1');
-
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrder#view', N'鏌ヨ', '', '3', '0', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrder#btn-add', N'鏂板', '', '3', '1', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrder#btn-edit', N'缂栬緫', '', '3', '2', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrder#btn-delete', N'鍒犻櫎', '', '3', '3', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrder#btn-export', N'瀵煎嚭', '', '3', '4', '1');
diff --git a/src/main/java/checkOrderDetl.sql b/src/main/java/checkOrderDetl.sql
deleted file mode 100644
index c7f5807..0000000
--- a/src/main/java/checkOrderDetl.sql
+++ /dev/null
@@ -1,18 +0,0 @@
--- save checkOrderDetl record
--- mysql
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrderDetl/checkOrderDetl.html', 'checkOrderDetl绠$悊', null , '2', null , '1');
-
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrderDetl#view', '鏌ヨ', '', '3', '0', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrderDetl#btn-add', '鏂板', '', '3', '1', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrderDetl#btn-edit', '缂栬緫', '', '3', '2', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrderDetl#btn-delete', '鍒犻櫎', '', '3', '3', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'checkOrderDetl#btn-export', '瀵煎嚭', '', '3', '4', '1');
-
--- sqlserver
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrderDetl/checkOrderDetl.html', N'checkOrderDetl绠$悊', null, '2', null, '1');
-
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrderDetl#view', N'鏌ヨ', '', '3', '0', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrderDetl#btn-add', N'鏂板', '', '3', '1', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrderDetl#btn-edit', N'缂栬緫', '', '3', '2', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrderDetl#btn-delete', N'鍒犻櫎', '', '3', '3', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'checkOrderDetl#btn-export', N'瀵煎嚭', '', '3', '4', '1');
diff --git a/src/main/java/com/zy/api/entity/CallAgvParams.java b/src/main/java/com/zy/api/entity/CallAgvParams.java
index 24a4709..59b5fd1 100644
--- a/src/main/java/com/zy/api/entity/CallAgvParams.java
+++ b/src/main/java/com/zy/api/entity/CallAgvParams.java
@@ -26,4 +26,10 @@
 
     @ApiModelProperty("鐩爣搴撲綅")
     private String tarLoc;
+
+    @ApiModelProperty("鎼繍鐘舵��")
+    private String status;
+
+    @ApiModelProperty("浠诲姟鍙�")
+    private String wrkNo;
 }
diff --git a/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java b/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
index 92c0972..b66d76f 100644
--- a/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
@@ -1,13 +1,45 @@
 package com.zy.api.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.R;
+import com.core.exception.CoolException;
 import com.zy.api.entity.CallAgvParams;
 import com.zy.api.enums.OrderType;
 import com.zy.api.service.AgvScheduleService;
+import com.zy.asrs.entity.LocCache;
+import com.zy.asrs.entity.Task;
+import com.zy.asrs.entity.result.ForwardAGVTaskDTO;
+import com.zy.asrs.entity.result.HIKApiDTO;
+import com.zy.asrs.entity.result.HIKResultDTO;
+import com.zy.asrs.enums.LocStsType;
+import com.zy.asrs.enums.TaskIOType;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.LocCacheService;
+import com.zy.asrs.service.TaskService;
+import com.zy.asrs.service.impl.LocCacheServiceImpl;
+import com.zy.common.constant.HIKApiConstant;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.UUID;
+
+@Slf4j
 @Service
 public class AgvScheduleServiceImpl implements AgvScheduleService {
+
+    @Autowired
+    private ApiLogService apiLogService;
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private LocCacheService locCacheService;
 
     /**
      * @author Ryan
@@ -29,7 +61,85 @@
 
     @Override
     public R callback(CallAgvParams params) {
-        //TODO 1. 鎼繍瀹屾垚锛屼慨鏀�
+        //TODO 1. 鎼繍瀹屾垚锛屼慨鏀圭珯鐐瑰簱浣嶇姸鎬�
+        if (params.getType().equals(OrderType.ORDER_OUT.type)) {
+            //鍑哄簱鍗�
+            if (params.getStatus().equals("RUNING")) {
+                LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", params.getOrgLoc()));
+                if (Objects.isNull(locCache)) {
+                    throw new CoolException("搴撲綅淇℃伅涓嶅瓨鍦紒锛�");
+                }
+                if (!locCache.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
+                    locCache.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
+                }
+            } else if (params.getStatus().equals("FINISHED")) {
+                Task task = taskService.selectOne(new EntityWrapper<Task>().eq("wrk_no", params.getWrkNo()));
+                if (Objects.isNull(task)) {
+                    throw new CoolException("浠诲姟淇℃伅涓嶅瓨鍦紒锛�");
+                }
+                if (!taskService.updateById(task)) {
+                    throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
+                }
+            }
+        } else {
+            //鍏ュ簱鍗�
+
+        }
+
         return null;
     }
+
+
+    public HIKResultDTO sendAgvTask(HIKApiDTO haiKangApiDTO, String path) {
+        HIKResultDTO result = new HIKResultDTO();
+        ForwardAGVTaskDTO forwardAGVTaskParam = new ForwardAGVTaskDTO();
+        forwardAGVTaskParam.setReqCode(UUID.randomUUID().toString().replace("-", ""));
+        forwardAGVTaskParam.setClientCode("IWMS");
+        forwardAGVTaskParam.setTaskTyp(haiKangApiDTO.getTaskType());
+        forwardAGVTaskParam.setCtnrTyp(haiKangApiDTO.getCtnrType());
+        forwardAGVTaskParam.setPriority(haiKangApiDTO.getPriority());
+        List<ForwardAGVTaskDTO.PositionCodePaths> positionCodePathsList = new ArrayList<>();
+        positionCodePathsList.add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getOrg(), haiKangApiDTO.getOrgType()));
+        positionCodePathsList.add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getTar(), haiKangApiDTO.getTarType()));
+        forwardAGVTaskParam.setPositionCodePath(positionCodePathsList);
+        String body = JSON.toJSONString(forwardAGVTaskParam);
+        String response = "";
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(HIKApiConstant.AGV_IP)
+                    .setPath(path)
+                    .setJson(body)
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            if (jsonObject.getInteger("code").equals(0)) {
+                result.setSuccess(true);
+            } else {
+                result.setMessage(jsonObject.getString("message"));
+                log.error("鍙戦�乤gv浠诲姟澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", HIKApiConstant.AGV_IP + path, body, response);
+            }
+//            {"code":"1","data":"","interrupt":false,"message":"閲嶅鎻愪氦","msgErrCode":"0x3a80D012","reqCode":"fa92b49481a44627ae4d80c1400f28f6"}
+        } catch (Exception e) {
+            result.setMessage(e.getMessage());
+            log.error("鍙戦�乤gv浠诲姟寮傚父", e);
+        } finally {
+            try {
+                // 淇濆瓨鎺ュ彛鏃ュ織
+                apiLogService.save(
+                        "鍙戦�乤gv浠诲姟",
+                        HIKApiConstant.AGV_IP + path,
+                        null,
+                        "127.0.0.1",
+                        body,
+                        response,
+                        result.isSuccess()
+                );
+            } catch (Exception e) {
+                log.error("", e);
+            }
+        }
+        return result;
+    }
+
+
 }
diff --git a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
index a3de122..6f0919f 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -14,14 +14,19 @@
 import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.enums.CommonEnum;
 import com.zy.asrs.enums.OrderSettle;
+import com.zy.asrs.service.MatService;
 import com.zy.asrs.service.OrderDetlService;
 import com.zy.asrs.service.OrderService;
 
+import com.zy.asrs.service.impl.MatServiceImpl;
+import com.zy.asrs.utils.Utils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.swing.text.DateFormatter;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -33,6 +38,8 @@
     private OrderService orderService;
     @Autowired
     private OrderDetlService orderDetlService;
+    @Autowired
+    private MatService matService;
 
     /**
      * 鎺ユ敹涓嬪彂璁㈠崟淇℃伅
@@ -134,7 +141,9 @@
         newOrder.setSettle(OrderSettle.ORDER_SETTLE_HOLDING.type);
         newOrder.setStatus(CommonEnum.COMMON_ENUM_Y.type);
         // 璁㈠崟鏃堕棿
-        newOrder.setOrderTime(DateUtils.convert(new Date(), "yyyy-MM-dd HH:mm:ss"));
+        if (Utils.isValidFormat(params.getUpdate_time(), "yyyy-MM-dd HH:mm:ss")) {
+            newOrder.setOrderTime(params.getUpdate_time());
+        }
         // 鍏徃ID
         newOrder.setCstmrName(params.getCompany_id());
         newOrder.setCreateTime(new Date());
@@ -144,12 +153,18 @@
         }
         if (!Objects.isNull(params.getDetails()) && !params.getDetails().isEmpty()) {
             params.getDetails().forEach(item -> {
+                Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", item.getPro_komcode()));
+                if (Objects.isNull(matnr)) {
+                    throw new CoolException("鐗╂枡缂栫爜涓嶅瓨鍦紒锛�");
+                }
                 OrderDetl orderItem = new OrderDetl();
-                BeanUtils.copyProperties(item, orderItem);
+                BeanUtils.copyProperties(matnr, orderItem);
                 orderItem.setOrderId(newOrder.getId());
                 orderItem.setOrderNo(newOrder.getOrderNo());
                 orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0);
-                orderItem.setMatnr(item.getPro_komcode());
+                orderItem.setMatnr(matnr.getMatnr());
+                orderItem.setMaktx(matnr.getMaktx());
+                orderItem.setBrand(matnr.getBrand());
                 orderItem.setBatch(1 + "");
                 orderItem.setStandby1(item.getPro_id());
                 //鍏宠仈涓婂姞娲惧伐鍗曞彿+闆朵欢浠g爜+渚涘簲鍟嗕唬鐮�
diff --git a/src/main/java/com/zy/asrs/entity/BasContainer.java b/src/main/java/com/zy/asrs/entity/BasContainer.java
index 71aa45d..e229c6c 100644
--- a/src/main/java/com/zy/asrs/entity/BasContainer.java
+++ b/src/main/java/com/zy/asrs/entity/BasContainer.java
@@ -60,7 +60,6 @@
         this.barcode = barcode;
     }
 
-
     public String getType$() {
         if (Cools.isEmpty(type)) {
             return "鏂欑";
@@ -71,6 +70,8 @@
             return ContainerType.CONTAINER_TYPE_SALVER.desc;
         } else if (type.equals(ContainerType.CONTAINER_TYPE_CAGE.type)) {
             return ContainerType.CONTAINER_TYPE_CAGE.desc;
+        } else if (type.equals(ContainerType.CONTAINER_TYPE_CAR.type)) {
+            return ContainerType.CONTAINER_TYPE_CAR.desc;
         }
         return null;
     }
@@ -83,7 +84,7 @@
             return CommonEnum.COMMON_ENUM_N.desc;
         } else if (flagMix.equals(CommonEnum.COMMON_ENUM_Y.type)) {
             return CommonEnum.COMMON_ENUM_Y.desc;
-        }
+        } 
         return null;
     }
 
diff --git a/src/main/java/com/zy/asrs/entity/OrderDetlPakin.java b/src/main/java/com/zy/asrs/entity/OrderDetlPakin.java
index 935e58b..34cb220 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetlPakin.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetlPakin.java
@@ -7,9 +7,7 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
-import com.zy.asrs.service.BasProcessProceduresService;
-import com.zy.asrs.service.BasQualityTestingService;
-import com.zy.asrs.service.OrderService;
+import com.zy.asrs.service.*;
 import com.zy.common.utils.Synchro;
 import com.zy.system.entity.User;
 import com.zy.system.service.UserService;
@@ -418,6 +416,20 @@
         }
     }
 
+    public String getTag$() {
+        MatService service = SpringUtils.getBean(MatService.class);
+        Mat order = service.selectOne(new EntityWrapper<Mat>().eq("matnr", this.matnr));
+        if (Cools.isEmpty(order)){
+           return null;
+        }
+        TagService tagService = SpringUtils.getBean(TagService.class);
+        Tag tag = tagService.selectOne(new EntityWrapper<Tag>().eq("id", order.getTagId()));
+        if (!Objects.isNull(tag)){
+            return tag.getName();
+        }
+        return null;
+    }
+
     public String getPakinPakoutStatus$(){
         if (Objects.isNull(pakinPakoutStatus)) {return  null;}
         switch (this.pakinPakoutStatus){
diff --git a/src/main/java/com/zy/asrs/enums/TaskIOType.java b/src/main/java/com/zy/asrs/enums/TaskIOType.java
index 8b24ea5..23ae4cd 100644
--- a/src/main/java/com/zy/asrs/enums/TaskIOType.java
+++ b/src/main/java/com/zy/asrs/enums/TaskIOType.java
@@ -24,7 +24,7 @@
 
     PICK_IN("53", "53.鎷f枡鍏ュ簱"),
 
-    MERGE_IN("54", "53.骞舵澘鍏ュ簱"),
+    MERGE_IN("54", "54.骞舵澘鍏ュ簱"),
 
     CHECK_IN("57", "57.鐩樼偣鍏ュ簱"),
 
diff --git a/src/main/java/com/zy/asrs/service/impl/BasContainerServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasContainerServiceImpl.java
index 3919e27..69248d8 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasContainerServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasContainerServiceImpl.java
@@ -54,6 +54,9 @@
             } else if (container.getType().equals(ContainerType.CONTAINER_TYPE_SALVER.type)) {
                 prefix = "TP4";
                 basContainer.setMixMax(2);
+            } else if (container.getType().equals(ContainerType.CONTAINER_TYPE_CAR.type)) {
+                prefix = "TC5";
+                basContainer.setMixMax(1);
             }
             ruleCode = prefix + StringUtils.leftPad(i + "", length, "0");
             basContainer.setType(container.getType())
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 0aac059..218e81a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -589,9 +589,12 @@
             throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
         }
 
-        if (param.getBarcode().length() != 8) {
-            throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode());
+        if (Objects.isNull(param.getBarcode())) {
+            throw new CoolException("鎵樼洏鐮佷笉鑳戒负绌猴紒锛�");
         }
+//        if (param.getBarcode().length() != 8) {
+//            throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode());
+//        }
 
         if (Objects.isNull(param.getType())) {
             param.setType("0");
@@ -691,18 +694,19 @@
                 }
             });
 
+            Set<String> matnrs = detlDtos.stream().map(DetlDto::getMatnr).collect(Collectors.toSet());
+            List<Mat> mats = matService.selectList(new EntityWrapper<Mat>().in("matnr", matnrs));
+            Set<Long> tagIds = mats.stream().map(Mat::getTagId).collect(Collectors.toSet());
+            if (tagIds.size() > 1) {
+                throw new CoolException("缁勬墭鐗╂枡绫诲瀷涓嶄竴鑷达紝鍙湁鐩稿悓鐨勭墿鏂欏垎绫绘墠鍙互缁勬墭锛侊紒");
+            }
+
             BasContainer container = basContainerService.selectOne(new EntityWrapper<BasContainer>().eq("barcode", param.getBarcode()));
             if (Objects.isNull(container)) {
                 throw new CoolException("鏁版嵁閿欒锛氬鍣ㄧ爜涓嶅瓨鍦紒锛�");
             }
             if (container.getMixMax() < detlDtos.size()) {
                 throw new CoolException("瓒呭嚭瀹瑰櫒鏈�澶ф贩瑁呮暟閲忥紝褰撳墠瀹瑰櫒鏈�澶ф暟閲忎负锛�" + container.getMixMax() + "!!");
-            }
-            Set<String> matnrs = detlDtos.stream().map(DetlDto::getMatnr).collect(Collectors.toSet());
-            List<Mat> mats = matService.selectList(new EntityWrapper<Mat>().in("matnr", matnrs));
-            Set<Long> tagIds = mats.stream().map(Mat::getTagId).collect(Collectors.toSet());
-            if (tagIds.size() > 1) {
-                throw new CoolException("缁勬墭鐗╂枡绫诲瀷涓嶄竴鑷达紝鍙湁鐩稿悓鐨勭墿鏂欏垎绫绘墠鍙互缁勬墭锛侊紒");
             }
             //杩樺彲浠ユ斁鍏ュ灏戠鐗╂枡
             Integer suplus = container.getMixMax();
@@ -711,22 +715,21 @@
                 if (Cools.isEmpty(mat)) {
                     throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
                 }
-                //鏈�澶氬彲鏀炬暟閲�
-                Double singleMax = mat.getUpQty() * suplus;
-                if (singleMax.compareTo(detlDto.getAnfme()) < 0) {
-                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + "鍗曟缁勬墭涓婇檺涓猴細" + mat.getUpQty() + ",褰撳墠鎬婚噺瓒呭嚭鎵樼洏瑁呰浇涓婇檺!!");
-                }
-                BigDecimal decimal = new BigDecimal(detlDto.getAnfme() / mat.getUpQty());
-                //褰撳墠鐗╂枡闇�瑕佸崰鐢ㄦ枡绠辨牸鏁�
-                Integer curr = decimal.setScale(0, RoundingMode.CEILING).intValue();
-                suplus = suplus - curr;
-                if (suplus < 0) {
-                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + ", 瓒呭嚭褰撳墠鎵樼洏瑁呰浇涓婇檺锛侊紒");
-                }
+//                //鏈�澶氬彲鏀炬暟閲�
+//                Double singleMax = mat.getUpQty() * suplus;
+//                if (singleMax.compareTo(detlDto.getAnfme()) < 0) {
+//                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + "鍗曟缁勬墭涓婇檺涓猴細" + mat.getUpQty() + ",褰撳墠鎬婚噺瓒呭嚭鎵樼洏瑁呰浇涓婇檺!!");
+//                }
+//                BigDecimal decimal = new BigDecimal(detlDto.getAnfme() / mat.getUpQty());
+//                //褰撳墠鐗╂枡闇�瑕佸崰鐢ㄦ枡绠辨牸鏁�
+//                Integer curr = decimal.setScale(0, RoundingMode.CEILING).intValue();
+//                suplus = suplus - curr;
+//                if (suplus < 0) {
+//                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + ", 瓒呭嚭褰撳墠鎵樼洏瑁呰浇涓婇檺锛侊紒");
+//                }
 
                 WaitPakin waitPakin = new WaitPakin();
                 BeanUtils.copyProperties(mat, waitPakin);
-//                waitPakin.sync(mat);
                 waitPakin.setOrderNo(detlDto.getOrderNo());   // 鍗曟嵁缂栧彿
                 waitPakin.setOrderId(detlDto.getOrderId());
                 waitPakin.setBatch(detlDto.getBatch());     // 搴忓垪鐮�
@@ -1223,16 +1226,13 @@
      */
     @Override
     public R callAgvMove(AgvCallParams params, Long userId) {
-        if (Objects.isNull(params.getTarSite())) {
-            throw new CoolException("鐩爣鍙傛暟涓嶈兘涓虹┖锛侊紒");
-        }
         if (Objects.isNull(params.getOrgSite())) {
             throw new CoolException("婧愮珯鐐逛笉鑳戒负绌猴紒锛�");
         }
         LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>()
                 .eq("frozen", 0)
                 .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
-                .eq("loc_no", params.getTarSite())
+//                .eq("loc_no", params.getTarSite())
                 .orderAsc(Arrays.asList("loc_no"))
                 .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
         if (Objects.isNull(locCache)) {
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 4ead5ce..5535a49 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -16,6 +16,8 @@
 
 
 import java.text.DecimalFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -49,6 +51,17 @@
         }
     }
 
+    public static boolean isValidFormat(String dateStr, String format) {
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        sdf.setLenient(false); // 涓ユ牸妯″紡锛屽繀椤诲畬鍏ㄥ尮閰嶆牸寮�
+        try {
+            sdf.parse(dateStr);
+            return true;
+        } catch (ParseException e) {
+            return false;
+        }
+    }
+
     /**
      * 鍒ゆ柇鏄惁涓烘繁搴撲綅
      */
diff --git a/src/main/java/stationRela.sql b/src/main/java/stationRela.sql
deleted file mode 100644
index 0f7521d..0000000
--- a/src/main/java/stationRela.sql
+++ /dev/null
@@ -1,18 +0,0 @@
--- save stationRela record
--- mysql
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'stationRela/stationRela.html', 'stationRela绠$悊', null , '2', null , '1');
-
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'stationRela#view', '鏌ヨ', '', '3', '0', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'stationRela#btn-add', '鏂板', '', '3', '1', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'stationRela#btn-edit', '缂栬緫', '', '3', '2', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'stationRela#btn-delete', '鍒犻櫎', '', '3', '3', '1');
-insert into `sys_resource` ( `code`, `name`, `resource_id`, `level`, `sort`, `status`) values ( 'stationRela#btn-export', '瀵煎嚭', '', '3', '4', '1');
-
--- sqlserver
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'stationRela/stationRela.html', N'stationRela绠$悊', null, '2', null, '1');
-
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'stationRela#view', N'鏌ヨ', '', '3', '0', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'stationRela#btn-add', N'鏂板', '', '3', '1', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'stationRela#btn-edit', N'缂栬緫', '', '3', '2', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'stationRela#btn-delete', N'鍒犻櫎', '', '3', '3', '1');
-insert [dbo].[sys_resource] ( [code], [name], [resource_id], [level], [sort], [status]) values ( N'stationRela#btn-export', N'瀵煎嚭', '', '3', '4', '1');
diff --git a/src/main/webapp/static/js/orderPakin/order.js b/src/main/webapp/static/js/orderPakin/order.js
index 60ab736..5c1215f 100644
--- a/src/main/webapp/static/js/orderPakin/order.js
+++ b/src/main/webapp/static/js/orderPakin/order.js
@@ -120,8 +120,9 @@
                             { field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160 },
                             { field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160 },
                             { field: 'standby1', title: '渚涘簲鍟嗙紪鐮�', width: 160 },
-                            { field: 'batch', title: '鎵瑰彿' },
+                            // { field: 'batch', title: '鎵瑰彿' },
                             { field: 'anfme', title: '鏁伴噺' },
+                            { field: 'tag$', title: '鐗╂枡绉嶇被' },
                             { field: 'workQty', title: '浣滀笟鏁伴噺' },
                             { field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold' },
                             { field: 'specs', title: '瑙勬牸' }
diff --git a/src/main/webapp/views/basContainer/basContainer.html b/src/main/webapp/views/basContainer/basContainer.html
index 8756c3a..18289af 100644
--- a/src/main/webapp/views/basContainer/basContainer.html
+++ b/src/main/webapp/views/basContainer/basContainer.html
@@ -88,6 +88,7 @@
                             <option value="12">鏂欑</option>
                             <option value="13">绗兼</option>
                             <option value="14">鎵樼洏</option>
+                            <option value="3">鍙拌溅</option>
                         </select>
                     </div>
                 </div>
@@ -135,6 +136,7 @@
                     <option value="12">鏂欑</option>
                     <option value="13">绗兼</option>
                     <option value="14">鎵樼洏</option>
+                    <option value="3">鍙拌溅</option>
                 </select>
             </div>
         </div>

--
Gitblit v1.9.1