wuhb 3 тижнів тому
батько
коміт
13f96a40bc

+ 1 - 1
mes/ktg-admin/src/main/resources/application-dev.yml

@@ -61,7 +61,7 @@ spring:
                     config:
                         multi-statement-allow: true
     #   单机本地:loc, 单机网络:net, 联机:merge, MES:mes
-    robot-model: net
+    robot-model: loc
 #    robot-model: loc
     # redis 配置
     redis:

+ 1 - 1
mes/ktg-admin/src/main/resources/application.yml

@@ -38,7 +38,7 @@ server:
 # 日志配置
 logging:
   level:
-    com.ktg: debug
+    com.ktg: info
     org.springframework: warn
 
 # Spring配置

+ 62 - 57
mes/ktg-mes/src/main/java/com/ktg/mes/rms/service/impl/RmsLineServiceImpl.java

@@ -495,7 +495,9 @@ public class RmsLineServiceImpl implements IRmsLineService {
         int subTotalNum = rmsLineFlowTasks.size();
         Long parentId = rmsTaskPool.getTaskId();
         String boxCode = "";
-        if((rmsLineFlowTasks.get(0).getTaskType().equals("1") || rmsLineFlowTasks.get(0).getTaskType().equals("PUSH")) && rmsTaskInstockLine != null) {
+        if((rmsLineFlowTasks.get(0).getTaskType().equals("1")
+                || rmsLineFlowTasks.get(0).getTaskType().equals("PUSH"))
+                && rmsTaskInstockLine != null) {
             boxCode = rmsTaskInstockLine.getBoxCode();
             rmsTaskPool.setBoxCode(boxCode);
             rmsTaskPool.setStockId(rmsTaskInstockLine.getInstockId());
@@ -506,7 +508,9 @@ public class RmsLineServiceImpl implements IRmsLineService {
             rmsTaskInstockLine.setLiftCode(rmsLine.getStockLiftCode());
         }
 
-        if((rmsLineFlowTasks.get(0).getTaskType().equals("2") || rmsLineFlowTasks.get(0).getTaskType().equals("PULL")) && rmsTaskOutstockLine != null) {
+        if((rmsLineFlowTasks.get(0).getTaskType().equals("2")
+                || rmsLineFlowTasks.get(0).getTaskType().equals("PULL"))
+                && rmsTaskOutstockLine != null) {
             boxCode = rmsTaskOutstockLine.getBoxCode();
             rmsTaskPool.setBoxCode(boxCode);
             rmsTaskPool.setStockId(rmsTaskOutstockLine.getOutstockId());
@@ -520,7 +524,7 @@ public class RmsLineServiceImpl implements IRmsLineService {
         for (RmsLineFlowTask flowTask : rmsLineFlowTasks) {
             if(flowTask.getDeviceType() != null){
                 //容器类型判断
-                if (!boxCode.equals("") && ((boxCode.substring(0, 2).equals("TP") && !flowTask.getFlowTaskName().equals("拼合单")) ||
+                if (!boxCode.equals("") && ((boxCode.startsWith("TP") && !flowTask.getFlowTaskName().equals("拼合单")) ||
                         !boxCode.substring(0, 2).equals("TP") && flowTask.getFlowTaskName().equals("拼合单"))) continue;
                 rmsTaskPool = runTask(flowTask, rmsLine, rmsTaskPool, rmsTaskOutstockLine, rmsTaskInstockLine, rmsBox, totalNum, parentId, groupCode);
                 if(rmsTaskPool == null){
@@ -539,10 +543,10 @@ public class RmsLineServiceImpl implements IRmsLineService {
     }
 
     private RmsTaskPool runTask(RmsLineFlowTask rmsLineFlowTask, RmsLine rmsLine, RmsTaskPool rmsTaskPool, RmsTaskOutstockLine rmsTaskOutstockLine, RmsTaskInstockLine rmsTaskInstockLine, WmRmsBox rmsBox, int totalNum, Long parentId, String groupCode) throws Exception {
-        if (Long.parseLong(rmsLineFlowTask.getDeviceType())
-                == DeviceTypeEnum.ROLLERAGV.getValue() || Long.parseLong(rmsLineFlowTask.getDeviceType())
-                == DeviceTypeEnum.LIFTAGV.getValue() || Long.parseLong(rmsLineFlowTask.getDeviceType())
-                == DeviceTypeEnum.LATENTAGV.getValue()) {
+        if (Long.parseLong(rmsLineFlowTask.getDeviceType()) == DeviceTypeEnum.ROLLERAGV.getValue()
+                || Long.parseLong(rmsLineFlowTask.getDeviceType()) == DeviceTypeEnum.LIFTAGV.getValue()
+                || Long.parseLong(rmsLineFlowTask.getDeviceType()) == DeviceTypeEnum.LATENTAGV.getValue()
+                || Long.parseLong(rmsLineFlowTask.getDeviceType()) == DeviceTypeEnum.RAILAGV.getValue()) {
             rmsTaskPool = sendAgvTask(rmsTaskPool, rmsLineFlowTask, rmsLine, parentId, groupCode,rmsTaskOutstockLine,rmsTaskInstockLine, rmsBox);
             if(rmsTaskPool == null){
                 return null;
@@ -758,15 +762,6 @@ public class RmsLineServiceImpl implements IRmsLineService {
         rmsTaskPool.setDeviceType("1");
         rmsTaskPool.setGroupCode(groupCode);
         rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
-        //=========新增任务写库
-//        int i = sendTaskPool(rmsTaskPool);
-//        if(i > 0){
-//            if (rmsTaskPool.getParentId() == 0) {
-//                ApiCache.addLiftTask(rmsTaskPool);
-//            }
-//        }else{
-//            throw new Exception("入库任务新增失败");
-//        }
         return rmsTaskPool;
     }
 
@@ -832,14 +827,6 @@ public class RmsLineServiceImpl implements IRmsLineService {
         rmsTaskPool.setDeviceType("1");
         rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
         rmsTaskPool.setGroupCode(groupCode);
-//        int i = sendTaskPool(rmsTaskPool);
-//        if (i > 0) {
-//            if (rmsTaskPool.getParentId() == 0) {
-//                ApiCache.addLiftTask(rmsTaskPool);
-//            }
-//        } else {
-//            throw new Exception("入库任务新增失败");
-//        }
         return rmsTaskPool;
     }
 
@@ -993,15 +980,6 @@ public class RmsLineServiceImpl implements IRmsLineService {
         if(isWait){
             rmsTaskPool.setWaitType(1);;
         }
-        //=========新增任务
-//        int i = sendTaskPool(rmsTaskPool);
-//        if (i > 0) {
-//            if (rmsTaskPool.getParentId() == 0) {
-//                ApiCache.addLiftTask(rmsTaskPool);
-//            }
-//        }else{
-//            throw new Exception("出库任务新增失败");
-//        }
         return rmsTaskPool;
     }
 
@@ -1019,9 +997,9 @@ public class RmsLineServiceImpl implements IRmsLineService {
             rmsTaskPool.setSourceId(rmsTaskOutstockLine.getLineId());
             rmsTaskPool.setSourceType(rmsTaskOutstock.getErpOutstockCode());
         }else{
-                rmsTaskPool.setStockId(parentTaskPool.getStockId());
-                rmsTaskPool.setSourceId(parentTaskPool.getSourceId());
-                rmsTaskPool.setSourceType(parentTaskPool.getSourceType());
+            rmsTaskPool.setStockId(parentTaskPool.getStockId());
+            rmsTaskPool.setSourceId(parentTaskPool.getSourceId());
+            rmsTaskPool.setSourceType(parentTaskPool.getSourceType());
         }
         rmsTaskPool.setPickTime(flowTask.getPickTime());
         rmsTaskPool.setFromType(rmsLine.getFromType());
@@ -1040,60 +1018,60 @@ public class RmsLineServiceImpl implements IRmsLineService {
         if(!isNext){
             return null;
         }
-//        if (flowTask.getFlowTaskName().equals("拼合单") && !StringUtils.isEmpty(flowTask.getFromSite())) {
-//            rmsTaskPool.setFromSite("1$" + flowTask.getFromSite());
-//        } else {
+
         setFromSite(parentTaskPool, flowTask, rmsTaskPool, rmsLine, rmsTaskOutstockLine, rmsTaskInstockLine, rmsBox);
-//        }
 
         String fromSite = flowTask.getFromSite();
         int isLoad = flowTask.getIsLoad();
         rmsTaskPool.setKeyRoute(parentTaskPool.getToSite());
-        if(Long.parseLong(flowTask.getDeviceType())
-                == DeviceTypeEnum.LIFTAGV.getValue()){
+        //叉车任务
+        if(Long.parseLong(flowTask.getDeviceType()) == DeviceTypeEnum.LIFTAGV.getValue()){
             rmsTaskPool.setDeviceType(DeviceTypeEnum.LIFTAGV.getValue() + "");
             if(isLoad == 1){
                 if(StringUtils.isEmpty(fromSite)){
                     throw new Exception(flowTask.getFlowTaskId() + "叉车任务没有来源地");
                 }
                 rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
-//                rmsTaskPool.setTaskType(TaskTypeEnum.CDA2BX.getValue());
                 rmsTaskPool.setTaskType(flowTask.getTaskType());
 
             }else{
                 rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
                 rmsTaskPool.setTaskType(TaskTypeEnum.CX2B.getValue());
             }
-        }else{
+        }
+        //辊筒式AGV
+        if(Long.parseLong(flowTask.getDeviceType()) == DeviceTypeEnum.ROLLERAGV.getValue()){
             rmsTaskPool.setDeviceType(DeviceTypeEnum.ROLLERAGV.getValue() + "");
             if(isLoad == 1){
                 if(StringUtils.isEmpty(fromSite)){
                     throw new Exception(flowTask.getFlowTaskId() + "AGV任务没有来源地");
                 }
                 if(flowTask.getIsScroll()!=null && flowTask.getIsScroll() == 1){
+                    // 1: AGV上料并下料
                     rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
                     rmsTaskPool.setTaskType(TaskTypeEnum.RA2BX_ROLLER_BACK.getValue());
                 }else if(flowTask.getIsScroll()!=null && flowTask.getIsScroll() == 2){
                     // 2: AGV上料
-                    if(rmsTaskPool.getStockType() == 1){//入库,A等 B上
+                    if(rmsTaskPool.getStockType() == 1){//入库,A等 B滚动
                         rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
                         rmsTaskPool.setTaskType(TaskTypeEnum.TA2BR_ROLLER_BACK_UP.getValue());
                     }
-                    if(rmsTaskPool.getStockType() == 2){//出库,A滚,到B
+                    if(rmsTaskPool.getStockType() == 2){//出库,A滚动上料,到B
                         rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
                         rmsTaskPool.setTaskType(TaskTypeEnum.RA2B_ROLLER_BACK_UP.getValue());
                     }
                 }else if(flowTask.getIsScroll()!=null && flowTask.getIsScroll() == 3){
                     //3: AGV下料
-                    if(rmsTaskPool.getStockType() == 1) {//入库, A等,到 B下料
+                    if(rmsTaskPool.getStockType() == 1) {//入库, A等,到 B滚动下料
                         rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
                         rmsTaskPool.setTaskType(TaskTypeEnum.TA2BR_ROLLER_BACK_DOWN.getValue());
                     }
-                    if(rmsTaskPool.getStockType() == 2){//出库,A下料, 到B
+                    if(rmsTaskPool.getStockType() == 2){//出库,A滚动下料, 到B
                         rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
                         rmsTaskPool.setTaskType(TaskTypeEnum.RA2B_ROLLER_BACK_DOWN.getValue());
                     }
                 }else{
+                    //移动 A到B
                     rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
                     rmsTaskPool.setTaskType(TaskTypeEnum.DA2BX.getValue());
                 }
@@ -1113,6 +1091,42 @@ public class RmsLineServiceImpl implements IRmsLineService {
                 }
             }
         }
+
+        //轨道AGV
+        if(Long.parseLong(flowTask.getDeviceType()) == DeviceTypeEnum.RAILAGV.getValue()){
+            rmsTaskPool.setDeviceType(DeviceTypeEnum.ROLLERAGV.getValue() + "");
+            if(isLoad == 1){
+                if(StringUtils.isEmpty(fromSite)){
+                    throw new Exception(flowTask.getFlowTaskId() + "AGV任务没有来源地");
+                }
+                rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
+                if(flowTask.getIsScroll()!=null && flowTask.getIsScroll() == 0){
+                    //移动
+                    rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
+                    rmsTaskPool.setTaskType(TaskTypeEnum.DA2BX.getValue());
+                }
+                if(flowTask.getIsScroll()!=null && flowTask.getIsScroll() == 1){
+                    // 1: AGV上料并下料,全自动
+                    rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
+                    rmsTaskPool.setTaskType(TaskTypeEnum.RA2BX_ROLLER_BACK.getValue());
+                }
+                if(flowTask.getIsScroll()!=null && flowTask.getIsScroll() == 2){
+                    //A滚动上料,到B等
+                    rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
+                    rmsTaskPool.setTaskType(TaskTypeEnum.RA2B_ROLLER_BACK_UP.getValue());
+                }
+                if(flowTask.getIsScroll()!=null && flowTask.getIsScroll() == 3){
+                    //A等,到B滚动下料
+                    rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
+                    rmsTaskPool.setTaskType(TaskTypeEnum.TA2BR_ROLLER_BACK_DOWN.getValue());
+                }
+            }else{
+                //移动
+                rmsTaskPool.setTaskName(flowTask.getFlowTaskName());
+                rmsTaskPool.setTaskType(TaskTypeEnum.DA2BX.getValue());
+            }
+        }
+
         rmsTaskPool.setRunDelay(flowTask.getDelayTime());
         if(flowTask.getFlowTaskId() == null){
             flowTask.setFinishType(1);
@@ -1136,15 +1150,6 @@ public class RmsLineServiceImpl implements IRmsLineService {
         rmsTaskPool.setCreateBy(rmsLine.getCreateBy());
         rmsTaskPool.setCreateTime(new Date());
         rmsTaskPool.setBeginTime(new Date());
-
-//        int i = rmsTaskPoolMapper.insertRmsTaskPool(rmsTaskPool);
-//        if (i > 0) {
-//            if (rmsTaskPool.getParentId() == 0) {
-//                ApiCache.addAgvTask(rmsTaskPool);
-//            }
-//        } else {
-//            throw new Exception("AGV任务新增失败");
-//        }
         return rmsTaskPool;
     }
 

+ 3 - 1
mes/ktg-mes/src/main/java/com/ktg/mes/rms/task/ApiStockTask.java

@@ -520,7 +520,8 @@ public class ApiStockTask {
                     isNext = 2;
                 }else{
                     rmsTaskPools.forEach(item->{
-                        if(item.getDeviceType().equals(DeviceTypeEnum.ROLLERAGV.getValue()+"")){
+                        if(item.getDeviceType().equals(DeviceTypeEnum.ROLLERAGV.getValue()+"")
+                            ||item.getDeviceType().equals(DeviceTypeEnum.RAILAGV.getValue()+"")){
                             item.setCheck(false);
                             ApiCache.addAgvTask(item);
                         }
@@ -948,6 +949,7 @@ public class ApiStockTask {
 
     public boolean checkAgvServer(RmsTaskPool rmsTaskPool) throws Exception {
         try {
+            log.info("检查AGV服务器:" + rmsTaskPool.getDeviceType());
             if(String.valueOf(DeviceTypeEnum.ROLLERAGV.getValue()).equals(rmsTaskPool.getDeviceType())) {
                 RmsHelper rmsHelper = RmsHelper.getInstance();
                 rmsHelper.init();

+ 6 - 6
mes/mes-ui/src/views/mes/rms/lineFlowTask/index.vue

@@ -221,7 +221,7 @@
             </el-col>
           </el-row>
         </template>
-        <template v-if="form.deviceType === '4'||form.deviceType === '2'||form.deviceType === '5'">
+        <template v-if="form.deviceType === '4'||form.deviceType === '2'||form.deviceType === '5' ||form.deviceType === '7'">
           <el-row>
             <el-col :span="12">
               <el-form-item label="任务类型" prop="taskType">
@@ -248,7 +248,7 @@
             </template>
           </el-row>
         </template>
-        <template v-if="form.deviceType === '2' ||form.deviceType === '5' || form.deviceType === '3'">
+        <template v-if="form.deviceType === '2' ||form.deviceType === '5' || form.deviceType === '3'||form.deviceType === '7'">
           <el-row>
             <el-col :span="12">
               <el-form-item label="是否载重" prop="isLoad">
@@ -257,12 +257,12 @@
                   <el-option label="否" :value="parseInt('0')" />
                 </el-select>
               </el-form-item>
-              <el-form-item label="是否滚动" prop="isScroll">
+              <el-form-item label="是否滚动" prop="isScroll" v-if="form.isLoad === 1">
                 <el-select v-model="form.isScroll" placeholder="请选择是否滚动">
                   <el-option label="否" :value="parseInt('0')" />
-                  <el-option label="" :value="parseInt('1')" />
-                  <el-option label="上料" :value="parseInt('2')" />
-                  <el-option label="下料" :value="parseInt('3')" />
+                  <el-option label="自动上下料" :value="parseInt('1')" />
+                  <el-option label="自动上料" :value="parseInt('2')" />
+                  <el-option label="自动下料" :value="parseInt('3')" />
                 </el-select>
               </el-form-item>
             </el-col>