| 2025-05-13 | pang.jiabao | ![]() |
| 2025-05-13 | pang.jiabao | ![]() |
| 2025-05-13 | pang.jiabao | ![]() |
| 2025-05-13 | pang.jiabao | ![]() |
| 2025-05-13 | pang.jiabao | ![]() |
| 2025-05-13 | pang.jiabao | ![]() |
| 2025-05-13 | pang.jiabao | ![]() |
| 2025-05-12 | Administrator | ![]() |
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -1,5 +1,6 @@ package com.zy.asrs.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.annotations.ManagerAuth; @@ -13,11 +14,12 @@ import com.zy.asrs.domain.vo.CrnListVo; import com.zy.asrs.domain.vo.CrnMsgTableVo; import com.zy.asrs.domain.vo.CrnStateTableVo; import com.zy.asrs.entity.BasCrnError; import com.zy.asrs.entity.BasCrnp; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.*; import com.zy.asrs.importexcle.ImportCrnErrDto; import com.zy.asrs.importexcle.ImportCrnErrListener; import com.zy.asrs.mapper.BasCrnErrorMapper; import com.zy.asrs.mapper.TaskWrkMapper; import com.zy.asrs.service.BasCrnErrorService; import com.zy.asrs.service.BasCrnpService; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.WrkMastService; @@ -37,8 +39,12 @@ import com.zy.core.properties.SystemProperties; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -63,6 +69,30 @@ private BasCrnpService basCrnpService; @Autowired private LocMastService locMastService; @Resource private TaskWrkMapper taskWrkMapper; @Resource private BasCrnErrorService basCrnErrorService; @PostMapping("/importCrnErr") @ManagerAuth(memo = "导入堆垛机异常表") public R importCrnErr(@RequestParam("file") MultipartFile multipartFile) { try { importCrnErrExec(multipartFile); } catch (Exception e) { e.printStackTrace(); return R.error(e.getMessage()); } return R.ok("导入成功"); } @Transactional(rollbackFor = Exception.class) public void importCrnErrExec(MultipartFile multipartFile) throws IOException { EasyExcel.read(multipartFile.getInputStream(), ImportCrnErrDto.class, new ImportCrnErrListener(basCrnErrorService)).sheet().doReadSync(); } @ManagerAuth(memo = "进行中的命令") @@ -186,13 +216,14 @@ vo.setWorkNo(crnProtocol.getTaskNo()); // 任务号 if (crnProtocol.getTaskNo() > 0) { WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo()); if (wrkMast != null) { vo.setStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc()); // 模式状态 vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 源站 vo.setStaNo(wrkMast.getStaNo$()); // 目标站 vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 源库位 vo.setLocNo(wrkMast.getLocNo()); // 目标库位 // WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo()); TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(crnProtocol.getTaskNo())); if (taskWrk != null) { vo.setStatus(CrnStatusType.process(taskWrk.getIoType()).getDesc()); // 模式状态 vo.setSourceStaNo(taskWrk.getStartPoint()); // 源站 vo.setStaNo(taskWrk.getTargetPoint()); // 目标站 vo.setSourceLocNo(taskWrk.getStartPoint()); // 源库位 vo.setLocNo(taskWrk.getTargetPoint()); // 目标库位 } } else { vo.setStatus(crnProtocol.modeType.equals(CrnModeType.AUTO) ? CrnStatusType.MACHINE_AUTO.getDesc() : CrnStatusType.MACHINE_UN_AUTO.getDesc()); // 模式状态 src/main/java/com/zy/asrs/controller/TaskWrkController.java
@@ -216,6 +216,7 @@ } // toWmsService.addReportLog(taskWrk); locMastService.updateById(locMast); taskWrk.setCompleteTime(new Date()); taskWrk.setStatus(7);//手动完成任务 taskWrk.setModiTime(new Date()); taskWrkService.updateById(taskWrk); @@ -265,7 +266,7 @@ } // toWmsService.addReportLog(taskWrk); taskWrk.setCompleteTime(now);//完结时间 taskWrk.setCancelTime(now);//完结时间 taskWrkService.updateById(taskWrk); return R.ok(); } src/main/java/com/zy/asrs/entity/BasCrnError.java
@@ -3,7 +3,6 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; import com.core.common.Cools; import com.core.common.SpringUtils; import com.zy.system.entity.User; @@ -23,7 +22,7 @@ * 异常代号 */ @ApiModelProperty(value = "异常代号") @TableId(value = "error_code", type = IdType.AUTO) @TableId(value = "error_code") @TableField("error_code") private Long errorCode; src/main/java/com/zy/asrs/importexcle/ImportCrnErrDto.java
New file @@ -0,0 +1,20 @@ package com.zy.asrs.importexcle; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; /** * @author pang.jiabao * @description 导入堆垛机异常代码dto * @createDate 2024/9/2 9:55 */ @Data public class ImportCrnErrDto { @ExcelProperty(value = "序号",index = 0) private Long column1; @ExcelProperty(value = "异常描述",index = 1) private String column2; } src/main/java/com/zy/asrs/importexcle/ImportCrnErrListener.java
New file @@ -0,0 +1,96 @@ package com.zy.asrs.importexcle; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.fastjson.JSON; import com.zy.asrs.entity.BasCrnError; import com.zy.asrs.service.BasCrnErrorService; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.List; /** * @author pang.jiabao * @description 导入垛机异常表监听器 * @createDate 2024/9/2 9:56 */ @Slf4j public class ImportCrnErrListener extends AnalysisEventListener<ImportCrnErrDto> { /** * 每隔1000条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收 */ private static final int BATCH_COUNT = 400; private int count = 0; List<ImportCrnErrDto> list = new ArrayList<>(); /** * 假设这个是一个DAO,当然有业务逻辑这个也可以是一个service。当然如果不用存储这个对象没用。 */ private final BasCrnErrorService basCrnErrorService; /** * 如果使用了spring,请使用这个构造方法。每次创建Listener的时候需要把spring管理的类传进来 */ public ImportCrnErrListener(BasCrnErrorService basCrnErrorService) { this.basCrnErrorService = basCrnErrorService; } /** * 这个每一条数据解析都会来调用 */ @SneakyThrows @Override public void invoke(ImportCrnErrDto data, AnalysisContext context) { log.info("解析到第 {} 条数据:{}", ++count, JSON.toJSONString(data)); if (!data.getColumn2().equals("<No value>")) { list.add(data); } // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM if (list.size() >= BATCH_COUNT) { saveData(); // 存储完成清理 list list.clear(); } } /** * 所有数据解析完成了 都会来调用 */ @Override public void doAfterAllAnalysed(AnalysisContext context) { // 这里也要保存数据,确保最后遗留的数据也存储到数据库 if (list.size() > 0) { saveData(); } log.info("所有数据解析完成!"); } /** * 加上存储数据库 */ private void saveData() { log.info("{}条数据,开始存储数据库!", list.size()); List<BasCrnError> basCrnErrors = new ArrayList<>(); list.forEach(importCrnErrDto -> { BasCrnError basCrnError = new BasCrnError(); basCrnError.setErrorCode(importCrnErrDto.getColumn1()); basCrnError.setErrName(importCrnErrDto.getColumn2()); basCrnErrors.add(basCrnError); }); basCrnErrorService.insertBatch(basCrnErrors); log.info("存储数据库成功!"); } /** *解析出现错误会进入该方法 具体看源代码或文档 */ @Override public void onException(Exception exception, AnalysisContext context) throws Exception { log.error("处理异常:" + exception.getMessage()); throw exception; } } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -104,12 +104,6 @@ @Value("${loc-move.enable}") private boolean enable; @Value("${loc-move.crn1}") private boolean crn1; @Value("${loc-move.crn2}") private boolean crn2; @Value("${loc-move.crn3}") private boolean crn3; public synchronized void generateStoreWrkFile() { @@ -163,7 +157,6 @@ // 判断是否满足入库条件 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && workNo >= 9000 && staProtocol.isPakMk()) { // if(true){ // 获取条码扫描仪信息 BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); if (barcodeThread == null) { @@ -178,15 +171,6 @@ if (!Cools.isEmpty(taskWrk1)) { log.info("托盘码:" + BoxNo + "任务档存在"); continue; // if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { // StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() // .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); // if (Cools.isEmpty(staDesc)) { // return; // } else { // continue; // } // } } if (back) { storageEscalationParam.setWCSStatus(1); @@ -210,23 +194,6 @@ staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); //添加上报日志 // toWmsService.addReportLog(taskWrk); // if (!Cools.isEmpty(taskWrk)) { // StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() // .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); // staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); // staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); // MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); // //添加上报日志 // toWmsService.addReportLog(taskWrk); // } else { // log.info("创建工作档失败==>{}", taskWrk.getTaskNo()); // staProtocol.setStaNo(inSta.getBackSta().shortValue()); // devpThread.setPakMk(staProtocol.getSiteId(), false); // MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); // } } } @@ -246,8 +213,6 @@ for (CrnSlave crnSlave : slaveProperties.getCrn()) { // 遍历堆垛机出库站 for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) { // List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo())); // for (StaDesc staDesc : staDescs) { try { // 获取堆垛机出库站信息 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); @@ -263,13 +228,6 @@ if (taskWrk == null) { continue; } // 判断吊车是否实际已完成,且电脑状态在move中,以备电脑进行更新工作档 // CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, taskWrk.getCrnNo()); // CrnProtocol crnProtocol = crnThread.getCrnProtocol(); // log.info(crnProtocol.statusType+""+crnProtocol.getForkPosType()); // if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(taskWrk.getWrkNo().shortValue()) // && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED // && crnProtocol.forkPosType == CrnForkPosType.HOME) { log.info("下发输送线任务:taskWrk:" + JSON.toJSONString(taskWrk)); staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); staProtocol.setStaNo(Short.valueOf(taskWrk.getTargetPoint())); @@ -284,6 +242,7 @@ log.info("下发输送线任务成功:taskWrk:" + JSON.toJSONString(taskWrk)); taskWrk.setStatus(5); taskWrk.setWrkSts(14); taskWrk.setCompleteTime(new Date()); taskWrkService.updateById(taskWrk); } else { @@ -396,11 +355,12 @@ // int workNo = commonService.getWorkNo(WorkNoType.PAKIN.type);//获取入库工作号 // taskWrk.setWrkNo(workNo);//工作号 taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//派发状态 taskWrk.setAssignTime(new Date());//派发时间 taskWrk.setExecuteTime(new Date()); // taskWrk.setAssignTime(new Date());//派发时间 taskWrk.setWrkSts(3);//工作状态 3.吊车入库 taskWrk.setCrnNo(staDesc.getCrnNo());//堆垛机号 taskWrk.setModiTime(new Date()); taskWrk.setModiUser(9988L); // taskWrk.setModiTime(new Date()); // taskWrk.setModiUser(9988L); // 命令下发区 -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); @@ -543,7 +503,7 @@ Date now = new Date(); taskWrk.setWrkSts(12); taskWrk.setStatus(2); taskWrk.setModiTime(now); taskWrk.setExecuteTime(now); if (taskWrkMapper.updateById(taskWrk) == 0) { log.error("修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", taskWrk.getWrkNo()); } @@ -616,6 +576,7 @@ Date now = new Date(); taskWrk.setWrkSts(12); taskWrk.setStatus(2); taskWrk.setExecuteTime(now); taskWrk.setModiTime(now); if (taskWrkMapper.updateById(taskWrk) == 0) { log.error("修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", taskWrk.getWrkNo()); @@ -696,6 +657,7 @@ locMast1.setModiUser(9999L); locMastService.updateById(locMast1); } taskWrk.setCompleteTime(new Date()); taskWrkService.updateById(taskWrk); } src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -78,14 +78,7 @@ taskWrk.setWrkNo(workNo1); taskWrk.setStatus(TaskStatusType.RECEIVE.id);//任务状态:接收 taskWrk.setCreateTime(now); // try { // if (param.getIoType() > 1) { // if (Utils.locNoRowBoolean(locMast.getRow1())) { // param.setTaskPriority(11); // } // } // } catch (Exception e) { // } taskWrk.setAssignTime(now); taskWrk.setIoType(param.getIoType());//任务类型 taskWrk.setIoPri(param.getTaskPriority());//优先级 taskWrk.setBarcode(param.getBarcode());//条码 src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java
@@ -171,6 +171,7 @@ taskWrk.setWrkNo(workNo1); taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//任务状态:派发 taskWrk.setCreateTime(now); taskWrk.setAssignTime(now); taskWrk.setIoType(1);//任务类型 taskWrk.setIoPri(13);//优先级 taskWrk.setBarcode(barcode);//条码 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -103,7 +103,7 @@ locSts = "D"; // 库位转移 ===>> D.空桶/空栈板 } else if (wrkMast.getIoType() == 11) { locSts = wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F"; locSts = "F"; // 库位转移:目标库位 LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); if (Cools.isEmpty(locMast)) { src/main/java/com/zy/asrs/task/TaskReportScheduler.java
@@ -7,12 +7,19 @@ import com.core.common.Cools; import com.core.common.DateUtils; import com.core.exception.CoolException; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.entity.TaskWrkReport; import com.zy.asrs.entity.TaskWrkReportLog; import com.zy.asrs.entity.wms.WmsFeedback; import com.zy.asrs.mapper.TaskWrkMapper; import com.zy.asrs.service.ApiLogService; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.TaskWrkReportLogService; import com.zy.asrs.service.TaskWrkReportService; import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; import com.zy.common.utils.Synchro; import lombok.extern.slf4j.Slf4j; @@ -21,6 +28,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.IOException; import java.util.Date; @@ -46,6 +54,15 @@ @Value("${wms.taskExecCallback}") private String TaskExecCallback; @Resource private TaskWrkMapper taskWrkMapper; @Resource private LocMastService locMastService; @Resource private CommonService commonService; @Scheduled(cron = "0/5 * * * * ? ") @@ -99,6 +116,61 @@ } // @Scheduled(cron = "0/5 * * * * ? ") public synchronized void autoMoveLoc() { int flag = 1; // 1.跑23号堆垛机前7列,1号堆垛机1,9层 2.跑23号堆垛机后8-12列,1号堆垛机2-8层 for(int i = 1; i <= 3; i++ ){ // 获取堆垛机对应任务 Integer count = taskWrkMapper.selectCount(new EntityWrapper<TaskWrk>().eq("crn_no", i)); if (count == 0) { // 获取堆垛机巷道在库库位 LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("crn_no", i)); if (locMast != null) { // 获取一个移动的目标库位 LocMast locMast1; if (flag == 1) { if (i == 1) { locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0") .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").in("lev1",1,9)); } else { locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0") .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").le("bay1",7)); } } else { if (i == 1) { locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0") .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").in("lev1",2,3,4,5,6,7,8)); } else { locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0") .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").gt("bay1",7)); } } if (locMast1 != null) { // 创建移库任务 TaskWrk taskWrk = new TaskWrk(); Date now = new Date(); taskWrk.setTaskNo(locMast1.getLocNo());//任务号 taskWrk.setWrkNo(commonService.getWorkNo(WorkNoType.PAKIN.type)); taskWrk.setStatus(TaskStatusType.RECEIVE.id);//任务状态:接收 taskWrk.setCreateTime(now); taskWrk.setIoType(3);//任务类型 taskWrk.setIoPri(11);//优先级 taskWrk.setBarcode(locMast.getBarcode());//条码 taskWrk.setCrnNo(locMast.getCrnNo()); taskWrk.setWrkSts(11); taskWrk.setStartPoint(locMast.getLocNo());//起点 taskWrk.setTargetPoint(locMast1.getLocNo()); taskWrkMapper.insert(taskWrk); locMast1.setStatus("1"); locMastService.updateById(locMast1); } } } } } private WmsFeedback getWmsFeedback(TaskWrkReport taskWrk) { WmsFeedback feedback = new WmsFeedback(); src/main/resources/application.yml
@@ -8,7 +8,7 @@ name: @pom.build.finalName@ datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver url: jdbc:sqlserver://10.227.21.31:1433;databasename=glccwcs url: jdbc:sqlserver://10.227.21.34:1433;databasename=cosmawcs_cc username: cccwms password: pass-8686 src/main/resources/mapper/TaskWrkMapper.xml
@@ -126,7 +126,7 @@ <select id="selectToBeHistoryData" resultMap="BaseResultMap"> select * from dbo.wcs_task_wrk where 1=1 and ((wrk_sts=14 and status=5) or status=7 or status=4 or (wrk_sts=4 and status=5)) and ((wrk_sts=14 and status=5 and wrk_no not in (select wrk_no from asr_bas_devp)) or status=7 or status=4 or (wrk_sts=4 and status=5)) order by io_pri desc,create_time,wrk_no ASC </select> src/main/webapp/static/wms/js/locMast/locMast.js
@@ -1,11 +1,11 @@ var pageCurr; layui.use(['table','laydate', 'form'], function(){ layui.use(['table','laydate', 'form','upload','layer'], function(){ var table = layui.table; var $ = layui.jquery; var layer = layui.layer; var layDate = layui.laydate; var form = layui.form; var upload = layui.upload; // 数据渲染 tableIns = table.render({ elem: '#locMast', @@ -93,6 +93,28 @@ } }); upload.render({ elem: '#uploadExcel', // 绑定元素 url: baseUrl+'/importCrnErr', // 上传接口,替换为你的后端接口 headers:{'token': localStorage.getItem('token')}, accept: 'file', // 允许上传的文件类型 exts: 'xls|xlsx', // 允许上传的文件后缀 done: function(res){ // 上传完毕回调 if(res.code === 200){ layer.msg(res.msg); console.log('文件数据:', res.data); } else { layer.msg(res.msg || '上传失败'); } }, error: function(){ // 请求异常回调 layer.msg('上传失败,请重试'); } }); // 监听排序事件 table.on('sort(locMast)', function (obj) { var searchData = {}; src/main/webapp/views/locMast/locMast.html
@@ -90,6 +90,7 @@ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button> <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">删除</button> <button class="layui-btn layui-btn-primary" id="btn-init" lay-event="init">初始化</button> <!-- <button id="uploadExcel" class="layui-btn layui-btn-primary layui-btn-sm" >产品校验</button>--> <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">导出</button> </div> </script> src/main/webapp/views/taskWrkLog/taskWrkLog.html
@@ -24,7 +24,7 @@ <el-input v-model="tableSearchParam.wrk_no" placeholder="工作号"></el-input> </el-form-item> <el-form-item label=""> <el-input v-model="tableSearchParam.barcode" placeholder="箱号"></el-input> <el-input v-model="tableSearchParam.barcode" placeholder="条码"></el-input> </el-form-item> <el-form-item label=""> <el-input v-model="tableSearchParam.start_point" placeholder="起始位"></el-input> @@ -55,7 +55,7 @@ </el-table-column> <el-table-column property="wrkNo" label="工作号"> </el-table-column> <el-table-column property="createTime$" label="任务时间"> <el-table-column property="createTime$" label="创建时间"> </el-table-column> <el-table-column property="durationTime" label="持续时长"> </el-table-column>