From 9096f100c90bde05367730ad67d840dd9b0c6d6e Mon Sep 17 00:00:00 2001
From: psh <psh>
Date: Wed, 13 Dec 2023 17:08:54 +0800
Subject: [PATCH] fix

---
 .../StandardAutodoorDefination.java           |  7 +--
 .../src/views/acs/device/opc/index.vue        | 60 +++++++++----------
 .../MobileAuthorizationController.java        | 23 ++++++-
 .../nl/wms/pda/controller/PdaController.java  | 10 ++++
 .../org/nl/wms/pda/service/PdaService.java    |  2 +
 .../wms/pda/service/impl/PdaServiceImpl.java  | 17 +++++-
 .../service/impl/SchBasePointServiceImpl.java |  2 +-
 .../sch/task_manage/task/tasks/BPSLTask.java  |  4 +-
 .../sch/task_manage/task/tasks/MJXLTask.java  |  2 +-
 .../task_manage/task/tasks/TBXBKJTask.java    |  4 +-
 .../task_manage/task/tasks/ghs/GHSQHTask.java | 10 ++--
 11 files changed, 90 insertions(+), 51 deletions(-)

diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDefination.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDefination.java
index 8865936..2951abc 100644
--- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDefination.java
+++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_autodoor/StandardAutodoorDefination.java
@@ -55,12 +55,7 @@ public class StandardAutodoorDefination implements OpcDeviceDriverDefination {
     }
 
     public static List<ItemDto> getReadableItemDtos2() {
-        List<ItemDto> list = new ArrayList();
-        list.add(new ItemDto(ItemProtocol.item_heartbeat, "心跳", "DB600.B0"));
-        list.add(new ItemDto(ItemProtocol.item_mode, "工作状态", "DB600.B1", true));
-        list.add(new ItemDto(ItemProtocol.item_action, "动作信号", "DB600.B2"));
-        list.add(new ItemDto(ItemProtocol.item_error, "报警信号", "DB600.B4"));
-        return list;
+        return ItemProtocol.getReadableItemDtos();
     }
 
     @Override
diff --git a/acs/nladmin-ui/src/views/acs/device/opc/index.vue b/acs/nladmin-ui/src/views/acs/device/opc/index.vue
index 1a50838..1afca03 100644
--- a/acs/nladmin-ui/src/views/acs/device/opc/index.vue
+++ b/acs/nladmin-ui/src/views/acs/device/opc/index.vue
@@ -14,9 +14,9 @@
           class="filter-item"
           @keyup.enter.native="crud.toQuery"
         />
-        <rrOperation />
+        <rrOperation/>
       </div>
-      <crudOperation :permission="permission" />
+      <crudOperation :permission="permission"/>
       <!--表单组件-->
       <el-dialog
         :close-on-click-modal="false"
@@ -27,32 +27,32 @@
       >
         <el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
           <el-form-item label="OPC编码" prop="opc_code">
-            <el-input v-model="form.opc_code" style="width: 370px;" />
+            <el-input v-model="form.opc_code" style="width: 370px;"/>
           </el-form-item>
           <el-form-item label="OPC名称" prop="opc_name">
-            <el-input v-model="form.opc_name" style="width: 370px;" />
+            <el-input v-model="form.opc_name" style="width: 370px;"/>
           </el-form-item>
           <el-form-item label="OPC地址">
-            <el-input v-model="form.opc_host" style="width: 370px;" />
+            <el-input v-model="form.opc_host" style="width: 370px;"/>
           </el-form-item>
           <el-form-item label="用户名">
-            <el-input v-model="form.user" style="width: 370px;" />
+            <el-input v-model="form.user" style="width: 370px;"/>
           </el-form-item>
           <el-form-item label="密码" prop="password">
-            <el-input v-model="form.password" style="width: 370px;" type="password" />
+            <el-input v-model="form.password" style="width: 370px;" type="password"/>
             <el-button :loading="crud.cu === 2" type="primary" @click="getDetail()">详情</el-button>
           </el-form-item>
           <el-form-item label="程序ID">
-            <el-input v-model="form.prog_id" style="width: 370px;" />
+            <el-input v-model="form.prog_id" style="width: 370px;"/>
           </el-form-item>
           <el-form-item label="注册表ID">
-            <el-input v-model="form.cls_id" style="width: 370px;" />
+            <el-input v-model="form.cls_id" style="width: 370px;"/>
           </el-form-item>
           <el-form-item label="domain">
-            <el-input v-model="form.domain" style="width: 370px;" />
+            <el-input v-model="form.domain" style="width: 370px;"/>
           </el-form-item>
           <el-form-item label="备注" prop="remark">
-            <el-input v-model="form.remark" style="width: 380px;" rows="5" type="textarea" />
+            <el-input v-model="form.remark" style="width: 380px;" rows="5" type="textarea"/>
           </el-form-item>
         </el-form>
         <div slot="footer" class="dialog-footer">
@@ -63,18 +63,18 @@
 
       <el-dialog title="PLC管理" :visible.sync="dialogPlcFormVisible" width="550px">
         <el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
-          <el-input v-model="form.opc_server_id" type="hidden" prop="opc_server_id" />
+          <el-input v-model="form.opc_server_id" type="hidden" prop="opc_server_id"/>
           <el-form-item label="PLC编码" prop="plc_code">
-            <el-input v-model="form.plc_code" style="width: 370px;" />
+            <el-input v-model="form.plc_code" style="width: 370px;"/>
           </el-form-item>
           <el-form-item label="OPC名称" prop="plc_opc_name">
-            <el-input v-model="form.plc_opc_name" style="width: 370px;" disabled />
+            <el-input v-model="form.plc_opc_name" style="width: 370px;" disabled/>
           </el-form-item>
           <el-form-item label="PLC名称" prop="plc_name">
-            <el-input v-model="form.plc_name" style="width: 370px;" />
+            <el-input v-model="form.plc_name" style="width: 370px;"/>
           </el-form-item>
           <el-form-item label="PLC地址" prop="plc_host">
-            <el-input v-model="form.plc_host" style="width: 370px;" />
+            <el-input v-model="form.plc_host" style="width: 370px;"/>
           </el-form-item>
         </el-form>
         <div slot="footer" class="dialog-footer">
@@ -92,23 +92,23 @@
         row-key="opc_id"
         border
         default-expand-all
-        :tree-props="{children: 'children', has_children: 'has_children'}"
+        :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
         @select="crud.selectChange"
         @select-all="crud.selectAllChange"
         @selection-change="crud.selectionChangeHandler"
       >
-        <el-table-column type="selection" width="55" />
-        <el-table-column prop="opc_code" label="OPC编码" width="100" />
-        <el-table-column prop="opc_name" label="OPC名称" />
-        <el-table-column prop="opc_host" label="OPC地址" min-width="130" />
-        <el-table-column prop="type" label="类型" />
-        <el-table-column prop="user" label="用户名" min-width="100" />
-        <el-table-column prop="password" label="密码" />
-        <el-table-column prop="prog_id" label="程序ID" min-width="150" />
-        <el-table-column prop="cls_id" label="注册表ID" min-width="150" />
-        <el-table-column prop="domain" label="domain" />
-        <el-table-column prop="remark" label="备注" min-width="100" />
-        <el-table-column prop="create_time" label="创建时间" />
+        <el-table-column type="selection" width="55"/>
+        <el-table-column prop="opc_code" label="OPC编码" width="100"/>
+        <el-table-column prop="opc_name" label="OPC名称"/>
+        <el-table-column prop="opc_host" label="OPC地址" min-width="130"/>
+        <el-table-column prop="type" label="类型"/>
+        <el-table-column prop="user" label="用户名" min-width="100"/>
+        <el-table-column prop="password" label="密码"/>
+        <el-table-column prop="prog_id" label="程序ID" min-width="150"/>
+        <el-table-column prop="cls_id" label="注册表ID" min-width="150"/>
+        <el-table-column prop="domain" label="domain"/>
+        <el-table-column prop="remark" label="备注" min-width="100"/>
+        <el-table-column prop="createtime" label="创建时间"/>
         <el-table-column label="操作" width="200px" align="center" fixed="right">
           <template slot-scope="scope">
             <el-button type="text" size="small" @click="handleClick(scope.row,'1')">修改</el-button>
@@ -120,7 +120,7 @@
         </el-table-column>
       </el-table>
       <!--分页组件-->
-      <pagination />
+      <pagination/>
     </div>
   </div>
 </template>
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java
index 2cc9952..f964ce2 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java
@@ -12,6 +12,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.nl.common.exception.BadRequestException;
+import org.nl.common.logging.annotation.Log;
 import org.nl.common.utils.RsaUtils;
 import org.nl.common.utils.dto.CurrentUser;
 import org.nl.config.RsaProperties;
@@ -19,7 +20,10 @@ import org.nl.system.service.role.ISysRoleService;
 import org.nl.system.service.secutiry.dto.AuthUserDto;
 import org.nl.system.service.user.ISysUserService;
 import org.nl.system.service.user.dao.SysUser;
+import org.nl.wms.sch.point.service.ISchBasePointService;
+import org.nl.wms.sch.point.service.dao.SchBasePoint;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -29,6 +33,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Author: lyd
@@ -37,15 +42,17 @@ import java.util.List;
  */
 @Slf4j
 @RestController
-@RequestMapping("/mobile/auth")
+@RequestMapping("/api/pda")
 @Api(tags = "手持:系统授权接口")
 public class MobileAuthorizationController {
     @Autowired
     private ISysUserService userService;
     @Autowired
     private ISysRoleService roleService;
+    @Autowired
+    private ISchBasePointService pointService;
     @ApiOperation("登录授权")
-    @PostMapping(value = "/login")
+    @PostMapping(value = "/handlogin")
     @SaIgnore
     public ResponseEntity<Object> login(@Validated @RequestBody AuthUserDto authUser, HttpServletRequest request) throws Exception {
         // 密码解密 - 前端的加密规则: encrypt(根据实际更改)
@@ -89,4 +96,16 @@ public class MobileAuthorizationController {
 
         return ResponseEntity.ok(authInfo);
     }
+
+    @PostMapping("/point")
+    @Log("查询设备编号及状态")
+    @ApiOperation("查询设备编号及状态")
+    @SaIgnore
+    //@PreAuthorize("@el.check('sect:list')")
+    //@RequestBody JSONObject json
+    public ResponseEntity<Object> queryPoint(@RequestBody Map<String, String> whereJson) {
+        SchBasePoint region = new SchBasePoint();
+        region.setRegion_code(whereJson.get("region_code"));
+        return new ResponseEntity<>(pointService.getPointList(region), HttpStatus.OK);
+    }
 }
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java
index 532ecf8..512cb3f 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java
@@ -15,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+
 /**
  * @Author: lyd
  * @Description: 手持接口
@@ -27,6 +29,7 @@ import org.springframework.web.bind.annotation.RestController;
 @SaIgnore
 public class PdaController {
 
+    @Resource
     private PdaService pdaService;
 
 
@@ -37,6 +40,13 @@ public class PdaController {
         return new ResponseEntity<>(pdaService.outSave(param), HttpStatus.OK);
     }
 
+    @PostMapping("/callingEmpty")
+    @Log("涂板线叫空架")
+    @ApiOperation("涂板线叫空架")
+    public ResponseEntity<Object> callingEmpty(@RequestBody JSONObject param){
+        return new ResponseEntity<>(pdaService.callingEmpty(param), HttpStatus.OK);
+    }
+
     @PostMapping("/cleanVehicle")
     @Log("清空物料信息")
     @ApiOperation("清空物料信息")
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java
index dbe9315..aa6e32b 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java
@@ -11,6 +11,8 @@ import org.nl.wms.pda.service.dao.vo.PdaResponseVo;
 public interface PdaService {
     PdaResponseVo outSave(JSONObject param);
 
+    PdaResponseVo callingEmpty(JSONObject param);
+
     PdaResponseVo cleanVehicle(JSONObject param);
 
     PdaResponseVo callingMaterialTask(JSONObject param);
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java
index 83c12a1..1a80b6f 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java
@@ -52,6 +52,19 @@ public class PdaServiceImpl implements PdaService {
         acsToWmsService.acsApply(param);
         return PdaResponseVo.pdaResultOk("涂板线满架下料请求成功");
     }
+
+    @Override
+    public PdaResponseVo callingEmpty(JSONObject param) {
+        param.put("device_code",param.getString("point_code"));
+        if(!param.getString("point_code").startsWith("TBX")){
+            throw new BadRequestException("非涂板线禁止补空架!");
+        }
+        param.put("request_medthod_code","TBXBKJTask");
+        param.put("request_medthod_name","涂板线补空架");
+        acsToWmsService.acsApply(param);
+        return PdaResponseVo.pdaResultOk("涂板线补空架");
+    }
+
     @Override
     public PdaResponseVo cleanVehicle(JSONObject param) {
         //根据载具编码寻找点位,并且将它更新掉
@@ -64,7 +77,7 @@ public class PdaServiceImpl implements PdaService {
         groupEntity.setUpdate_id(GeneralDefinition.ACS_ID);
         groupEntity.setUpdate_name(GeneralDefinition.ACS_NAME);
         groupEntity.setUpdate_time(DateUtil.now());
-        vehiclematerialgroupService.save(groupEntity);
+        vehiclematerialgroupService.update(groupEntity);
         SchBasePoint pointObj=pointService.getById(groupEntity.getPoint_code());
         if(pointObj.getVehicle_code().contains(",")){
             vehicleCode+=',';
@@ -73,7 +86,7 @@ public class PdaServiceImpl implements PdaService {
         pointObj.setVehicle_qty(pointObj.getVehicle_qty()-1);
         pointService.update(pointObj);
         //清空组盘表的信息
-        return PdaResponseVo.pdaResultOk("呼叫物料请求成功");
+        return PdaResponseVo.pdaResultOk("清空物料信息请求成功");
     }
     @Override
     public PdaResponseVo callingMaterialTask(JSONObject param) {
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java
index 431cbd1..0d6afcc 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java
@@ -182,7 +182,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
         if (ObjectUtil.isEmpty(region)) return this.list();
         return pointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
                 .eq(SchBasePoint::getRegion_code, region.getRegion_code())
-                .eq(SchBasePoint::getIs_has_workder, true));
+                .eq(SchBasePoint::getIs_has_workder, 1));
     }
 
     @Override
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java
index 2f1785e..15914cc 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java
@@ -116,9 +116,9 @@ public class BPSLTask extends AbstractTask {
         if("1".equals(materialType)){
             regionCode="HCQ4";
         }else if("2".equals(materialType)){
-            regionCode="HCQ1";
-        }else if ("3".equals(materialType)){
             regionCode="HCQ2";
+        }else if ("3".equals(materialType)){
+            regionCode="HCQ3";
         }
         List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode,"1");
         for(int i=schBasePointList.size()-1;i>=0;i--){
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java
index ba71d24..22fe850 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java
@@ -162,7 +162,7 @@ public class MJXLTask extends AbstractTask {
                 .eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code")))
                 : null;
         String startPoint = taskObj.getPoint_code1(); // 获取起点
-        String endPoint = taskObj.getPoint_code2().substring(0,taskObj.getPoint_code2().length()-2); // 获取终点
+        String endPoint = ObjectUtil.isNotEmpty(taskObj.getPoint_code2())?taskObj.getPoint_code2().substring(0,taskObj.getPoint_code2().length()-2):"0"; // 获取终点
         SchBasePoint startPointObj = pointService.getById(startPoint);
         SchBasePoint endPointObj = pointService.getById(endPoint);
         // 根据传来的类型去对任务进行操作
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java
index fb96dfd..7094ad2 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java
@@ -114,11 +114,11 @@ public class TBXBKJTask extends AbstractTask {
         String regionCode = null;
         if ("TBX1".equals(startPoint.getRegion_code())) {
             //TBX1找A区
-            regionCode = "HCQ3";
+            regionCode = "HCQ1";
 
         } else if ("TBX2".equals(startPoint.getRegion_code())) {
             //TBX2找B区
-            regionCode = "KGHJ1";
+            regionCode = "HCQ5";
         }
         List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode,null);
         for (SchBasePoint schBasePoint : schBasePointList) {
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSQHTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSQHTask.java
index 8ed09e4..a81dd29 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSQHTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSQHTask.java
@@ -156,7 +156,7 @@ public class GHSQHTask extends AbstractTask {
 
     /**
      * 1.根据当前固化室所处区域,判断到哪个区的缓存位
-     * 正极板到HCQ4,负极板到HCQ1,边负极板到HCQ2
+     * 正极板到HCQ4,负极板到HCQ2,边负极板到HCQ3
      * 2.从1010列到0101列倒叙判断当前列物料类型是否与起点一致且存在空位
      * 3.将当前点位设置为目标点
      * 4.如果没有符合条件的点位,跳过执行暂时等待
@@ -169,11 +169,11 @@ public class GHSQHTask extends AbstractTask {
             regionCode = "HCQ4";
 
         } else if ("2".equals(startPoint.getVehicle_type())) {
-            //负极板到缓存区1
-            regionCode = "HCQ1";
-        } else if ("3".equals(startPoint.getVehicle_type())) {
-            //边负极板到缓存区1
+            //负极板到缓存区2
             regionCode = "HCQ2";
+        } else if ("3".equals(startPoint.getVehicle_type())) {
+            //边负极板到缓存区3
+            regionCode = "HCQ3";
         }
         List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode, "1");
         for (int i = schBasePointList.size() - 1; i >= 0; i--) {