| | |
| | | return R.error(); |
| | | } |
| | | TaskWrkLog taskWrkLog1 = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("TASK_NO", taskWrkLog.getTaskNo()).eq("WRK_NO", taskWrkLog.getWrkNo()).orderBy("MODI_TIME",false)); |
| | | Date modiTime = taskWrkLog1.getModiTime(); |
| | | if (taskWrkLog1 == null) { |
| | | return R.error(); |
| | | } |
| | |
| | | taskWrkLog1.setCompleteTime(taskWrkLog.getCompleteTime());//完结时间 |
| | | taskWrkLog1.setExecuteTime(taskWrkLog.getExecuteTime());//执行时间 |
| | | taskWrkLog1.setCreateTime(taskWrkLog.getCreateTime());//执行时间 |
| | | taskWrkLogService.update(taskWrkLog1,new EntityWrapper<TaskWrkLog>().eq("TASK_NO", taskWrkLog.getTaskNo()).eq("WRK_NO", taskWrkLog.getWrkNo()).eq("MODI_TIME",taskWrkLog1.getModiTime())); |
| | | taskWrkLogService.update(taskWrkLog1,new EntityWrapper<TaskWrkLog>().eq("TASK_NO", taskWrkLog.getTaskNo()).eq("WRK_NO", taskWrkLog.getWrkNo()).eq("MODI_TIME",modiTime)); |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) { |
| | | if (!staProtocol.isAutoing() || staProtocol.isLoading()) { |
| | | continue; |
| | | } |
| | | TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnProtocol.getLaneNo(), staDesc.getStnNo().toString()); |
| | | if (taskWrk == null) { |
| | | continue; |
| | | } |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0 || staProtocol.getWorkNo().equals(taskWrk.getWrkNo()))) { |
| | | // 查询工作档 |
| | | TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnProtocol.getLaneNo(), staDesc.getStnNo().toString()); |
| | | if (taskWrk == null) { |
| | | continue; |
| | | } |
| | | log.info("下发输送线任务:taskWrk:" + JSON.toJSONString(taskWrk)); |
| | | // R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false); |
| | | staProtocol.setWorkNo(taskWrk.getWrkNo()); |
| | |
| | | public synchronized void taskStart() { |
| | | for (RgvSlave rgvSlave : slaveProperties.getRgv()) { |
| | | try { |
| | | Thread.sleep(101); |
| | | if (rgvDetection(rgvSlave)) { |
| | | String taskNoNow = rgvOtherTaskWrk(rgvSlave); |
| | | List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("PLC_POSITION", true)); |
| | |
| | | // 所属线程 |
| | | private Thread thread; |
| | | private Thread thread2; |
| | | private Thread thread3; |
| | | private Thread thread4; |
| | | private Thread thread5; |
| | | // private Thread thread3; |
| | | // private Thread thread4; |
| | | // private Thread thread5; |
| | | |
| | | /** |
| | | * =====>> 开始工作 |
| | |
| | | thread2 = new Thread(this::crnAndDevOtherRun); |
| | | thread2.start(); |
| | | |
| | | thread5 = new Thread(this::demoRun5); |
| | | thread5.start(); |
| | | |
| | | thread3 = new Thread(this::demoRun); |
| | | thread3.start(); |
| | | |
| | | thread4 = new Thread(this::demoOpenRun); |
| | | thread4.start(); |
| | | // thread5 = new Thread(this::demoRun5); |
| | | // thread5.start(); |
| | | // |
| | | // thread3 = new Thread(this::demoRun); |
| | | // thread3.start(); |
| | | // |
| | | // thread4 = new Thread(this::demoOpenRun); |
| | | // thread4.start(); |
| | | } |
| | | |
| | | private void crnAndDevRun() { |
| | | while (!Thread.currentThread().isInterrupted()) { |
| | | try { |
| | | // 间隔 |
| | | Thread.sleep(500); |
| | | Thread.sleep(700); |
| | | // 系统运行状态判断 |
| | | if (!SystemProperties.WCS_RUNNING_STATUS.get()) { |
| | | continue; |
| | |
| | | mainService.generateStoreWrkFile(); // 组托 |
| | | // mainService.generateStoreWrkFileIsEmptyMk(); // 组托 空托 |
| | | mainService.generateStoreWrkFileWalk(); // wms入库任务下发 |
| | | // 出库 ===>> 堆垛机出库站到出库站 |
| | | mainService.crnStnToOutStn(); |
| | | // 入出库 ===>> 堆垛机入出库作业下发 |
| | | mainService.crnIoExecute(); |
| | | // 入库 ===>> 执行对工作档的完成操作 |
| | |
| | | while (!Thread.currentThread().isInterrupted()) { |
| | | try { |
| | | // 间隔 |
| | | Thread.sleep(210); |
| | | Thread.sleep(200); |
| | | // 系统运行状态判断 |
| | | if (!SystemProperties.WCS_RUNNING_STATUS.get()) { |
| | | continue; |
| | |
| | | if (SystemProperties.WCS_RUNNING_STATUS_DEMO.get()) { |
| | | continue; |
| | | } |
| | | // 出库 ===>> 堆垛机出库站到出库站 |
| | | mainService.crnStnToOutStn(); |
| | | // 堆垛机异常信息记录 |
| | | mainService.recCrnErr(); |
| | | // 输送线异常信息记录 |
| | |
| | | public void shutDown() { |
| | | if (thread != null) thread.interrupt(); |
| | | if (thread2 != null) thread2.interrupt(); |
| | | if (thread3 != null) thread3.interrupt(); |
| | | if (thread4 != null) thread4.interrupt(); |
| | | if (thread5 != null) thread5.interrupt(); |
| | | // if (thread3 != null) thread3.interrupt(); |
| | | // if (thread4 != null) thread4.interrupt(); |
| | | // if (thread5 != null) thread5.interrupt(); |
| | | } |
| | | |
| | | } |
| | |
| | | initRgv(); |
| | | continue; |
| | | } |
| | | Thread.sleep(20); |
| | | Thread.sleep(50); |
| | | // System.out.println("读线程,小车号"+ slave.getId()+"时间戳:"+System.currentTimeMillis()); |
| | | |
| | | readStatus(); |
| | |
| | | delRgvTask = false; |
| | | continue; |
| | | } |
| | | Thread.sleep(50L); |
| | | Thread.sleep(100L); |
| | | |
| | | OperateResultExOne<byte[]> result = siemensNet.Read("DB100.12", (short) 1); |
| | | boolean[] status = siemensNet.getByteTransform().TransBool(result.Content, 0, 1); |
| | |
| | | try { |
| | | if(!connectRgv){ |
| | | try { |
| | | Thread.sleep(100L); |
| | | Thread.sleep(1000L); |
| | | } catch (Exception e){ |
| | | |
| | | } |
| | |
| | | continue; |
| | | } |
| | | try { |
| | | Thread.sleep(100); |
| | | Thread.sleep(200); |
| | | rgvRun = RgvRunCache.getRgvRun(); |
| | | // System.out.println(JSON.toJSON(rgvRun)); |
| | | |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline"> |
| | | <el-form-item label="测试库位数量"> |
| | | <el-input v-model="formParam.locMastDemoCount" placeholder="测试库位数量"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="原始出库库位"> |
| | | <el-input v-model="formParam.locMastDemoF" placeholder="原始有物库位"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="原始空库位"> |
| | | <el-input v-model="formParam.locMastDemoE" placeholder="原始无物库位"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="堆垛机放货站点"> |
| | | <el-input v-model="formParam.staOutDemo" placeholder="堆垛机放货站点"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="堆垛机取货站点"> |
| | | <el-input v-model="formParam.staIntDemo" placeholder="堆垛机取货站点"></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="测试库位数量">--> |
| | | <!-- <el-input v-model="formParam.locMastDemoCount" placeholder="测试库位数量"></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="原始出库库位">--> |
| | | <!-- <el-input v-model="formParam.locMastDemoF" placeholder="原始有物库位"></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="原始空库位">--> |
| | | <!-- <el-input v-model="formParam.locMastDemoE" placeholder="原始无物库位"></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="堆垛机放货站点">--> |
| | | <!-- <el-input v-model="formParam.staOutDemo" placeholder="堆垛机放货站点"></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="堆垛机取货站点">--> |
| | | <!-- <el-input v-model="formParam.staIntDemo" placeholder="堆垛机取货站点"></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | </el-form> |
| | | <el-form label-position="top" :inline="true" class="demo-form-inline"> |
| | | <el-form-item label=""> |
| | |
| | | <el-form-item label=""> |
| | | <el-checkbox @change="updateEnableInOut('out')" v-model="enableOut">可出</el-checkbox> |
| | | </el-form-item> |
| | | <el-form-item label=""> |
| | | <el-checkbox @change="updateDemo('demo')" v-model="hpMkDemo">演示</el-checkbox> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="">--> |
| | | <!-- <el-checkbox @change="updateDemo('demo')" v-model="hpMkDemo">演示</el-checkbox>--> |
| | | <!-- </el-form-item>--> |
| | | </el-form> |
| | | <div> |
| | | <!-- <el-button @click="requestOperate('put')" type="primary">入库</el-button>--> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table ref="singleTable" :data="tableData" style="width: 100%;"> |
| | | <el-table-column label="操作" width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-dropdown @command="(command)=>{handleCommand(command, scope.row)}"> |
| | | <el-button icon="el-icon-more" size="mini" type="primary"></el-button> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <!-- <el-dropdown-item command="showCommand">查看指令</el-dropdown-item>--> |
| | | <el-dropdown-item command="changeCommand">修改</el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="操作" width="100">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <el-dropdown @command="(command)=>{handleCommand(command, scope.row)}">--> |
| | | <!-- <el-button icon="el-icon-more" size="mini" type="primary"></el-button>--> |
| | | <!-- <el-dropdown-menu slot="dropdown">--> |
| | | <!--<!– <el-dropdown-item command="showCommand">查看指令</el-dropdown-item>–>--> |
| | | <!-- <el-dropdown-item command="changeCommand">修改</el-dropdown-item>--> |
| | | <!-- </el-dropdown-menu>--> |
| | | <!-- </el-dropdown>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column property="taskNo" label="任务号"> |
| | | </el-table-column> |
| | | <el-table-column property="status$" label="任务状态"> |