src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -131,9 +131,10 @@ @PostMapping("/pakout/empty/container/selector/auth") public R containerType(@RequestBody HashMap<String,String> params){ Short locType = Short.valueOf(params.get("locType")); String devNo = params.get("devNo"); AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo); return R.ok(agvLocMastService.queryContainerTypeByLocType1(locType)); return R.ok(agvLocMastService.queryContainerTypeByLocType1(agvBasDevp.getLocType1())); } src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -72,7 +72,7 @@ //save api log (appkey 后续添加) AppAuthUtil.auth("",param, request); int wrkNo = Integer.parseInt(param.getReqCode()); int wrkNo = Integer.parseInt(param.getTaskCode()); if(wrkNo < 0){ wrkNo = -wrkNo; } @@ -136,17 +136,18 @@ } }, /** * 上报任务分配给机器人 * 任务开始 */ start{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { //修改AGV工作档的工作状态为203.任务开始 agvWrkMast.setWrkSts(203L); agvWrkMastService.updateById(agvWrkMast); } }, /** * 上报取箱状态 * 走出储位状态 */ outbin{ @Transactional @@ -159,7 +160,7 @@ } //修改AGV工作档的工作状态为203.RCS放货中 agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),203); agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),204); } @@ -170,11 +171,7 @@ cancel{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { //修改工作档状态为204.放货完成 agvWrkMast.setWrkSts(204L); //agvWrkMast.setLocNo(param.getLocationCode()); agvWrkMastService.updateById(agvWrkMast); //agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),204); } src/main/java/com/zy/asrs/entity/AgvBasDevp.java
@@ -243,20 +243,6 @@ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime); } public String getLocType1$() { if (null == this.locType1){ return null; } switch (this.locType1){ case 0: return "未知"; case 1: return "低库位"; case 2: return "高库位"; default: return String.valueOf(this.locType1); } } public String getLocType2$() { if (null == this.locType2){ return null; } switch (this.locType2){ @@ -285,6 +271,22 @@ } } public String getLocType1$() { if (null == this.locType1){ return null; } switch (this.locType1){ case 0: return "未知"; case 1: return "待包装"; case 2: return "原材料"; case 3: return "箱壳"; default: return String.valueOf(this.locType1); } } public String getModiUser$(){ UserService service = SpringUtils.getBean(UserService.class); User user = service.selectById(this.modiUser); src/main/java/com/zy/asrs/entity/param/AgvTaskCallBackParam.java
@@ -9,7 +9,7 @@ private static final long serialVersionUID = 1L; //请求编号 private String reqCode; private String taskCode; //任务状态 private String method; src/main/java/com/zy/asrs/entity/param/AgvTaskCreateParam.java
@@ -14,7 +14,7 @@ private static final long serialVersionUID = 1L; //任务号 private String reqCode; private String taskCode; //任务类型 private String taskTyp; src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java
@@ -15,12 +15,12 @@ "source_loc_no," + "loc_no," + "barcode," + "mk," + "whs_type," + "appe_user," + "appe_time," + "modi_user," + "modi_time) " + "VALUES(#{wrkSts},#{ioType},#{ioTime},#{ioPri},#{sourceLocNo},#{locNo},#{barcode},#{mk},#{appeUser},#{appeTime},#{modiUser},#{modiTime})") "VALUES(#{wrkSts},#{ioType},#{ioTime},#{ioPri},#{sourceLocNo},#{locNo},#{barcode},#{whsType},#{appeUser},#{appeTime},#{modiUser},#{modiTime})") public int insertByIncrease(AgvWrkMast agvWrkMast); } src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java
@@ -49,7 +49,7 @@ //待包装成品存储区出库接驳位 this.insertBatch(getConnectionBasDevpList("DO",8,2,false,(short)1)); //原材料入库接驳位 this.insertBatch(getConnectionBasDevpList("YI",15,2,true,(short)2)); this.insertBatch(getConnectionBasDevpList("YI",14,2,true,(short)2)); //原材料出库接驳位 this.insertBatch(getConnectionBasDevpList("YO",18,2,false,(short)2)); //箱壳入库接驳位 src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -91,7 +91,7 @@ locDto.setIsoseq(isoseq); locDto.setContainerCode(agvLocDetl.getSuppCode()); //当前库位所处楼层 int floor = Integer.parseInt(agvLocDetl.getLocNo().split("@")[1]); int floor = Integer.parseInt(agvLocDetl.getLocNo().split("F")[1]); //locDto.setAgvStaNos(queryAgvStaNosByFloor(floor)); locDto.setAgvStaNos(agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1())); locDtoList.add(locDto); src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -169,7 +169,7 @@ // //目标位 // agvTaskParamList.add(new AgvTaskParam(agvWrkMast.getLocNo())); agvTaskCreateParam.setReqCode(agvWrkMast.getWrkNo().toString()); agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString()); agvTaskCreateParam.setTaskTyp("F01"); agvTaskCreateParam.setPositionCodePath(agvTaskParamList); @@ -188,7 +188,7 @@ .doPost(); JSONObject jsonObject = JSON.parseObject(response); int code = (int) jsonObject.get("code"); int code = Integer.parseInt(jsonObject.get("code").toString()); if(code != 0){ throw new CoolException("调用AGV响应错误"); } src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -75,7 +75,7 @@ putaway:上架 定时处理AGV工作档中工作状态为201.生成入库任务ID 且(出库类型为 53.拣料再入库 || 1.入库 || 10.空板入库栽 || 57.盘点再入库)的数据 */ //@Scheduled(cron = "0/10 * * * * ? ") @Scheduled(cron = "0/10 * * * * ? ") public void startPutwayWrk(){ List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50) ,new EntityWrapper<AgvWrkMast>() src/main/java/com/zy/common/service/AgvCommonService.java
@@ -230,7 +230,7 @@ private AgvLocMast getLocNoRule(int type){ return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>() .eq("loc_sts","O") .eq(false,"loc_type1",type)); .eq("loc_type1",type)); } src/main/resources/application.yml
@@ -10,7 +10,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver url: jdbc:sqlserver://192.168.43.49:1433;databasename=phyzasrs url: jdbc:sqlserver://localhost:1433;databasename=phyzasrs # url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzskasrs #url: jdbc:sqlserver://10.10.10.40:1433;databasename=tzskasrs username: sa @@ -78,8 +78,8 @@ # containerMoveInPath: /agv/container/moveIn # containerMoveOutPath: /agv/container/moveOut # containerArrivedPath: /agv/containerArrived url: 10.10.10.182:9046 taskCreatePath: /task/create url: 192.168.103.32:8181 taskCreatePath: /rcms/services/rest/hikRpcService/genAgvSchedulingTask containerMoveInPath: /expand/api/moveIn/container containerMoveOutPath: /expand/api/moveOut/container containerArrivedPath: /conveyor/containerArrived src/main/webapp/static/js/agvBasDevp/basDevp.js
@@ -40,7 +40,7 @@ ,{field: 'floor', align: 'center',title: '楼'} //,{field: 'locType1$', align: 'center',title: '高低'} ,{field: 'barcode', align: 'center',title: '条形码'} ,{field: 'locType1', align: 'center',title: '库位类型'} ,{field: 'locType1$', align: 'center',title: '库位类型'} ,{field: 'locType2', align: 'center',title: "容器类型"} ,{field: 'modiUser$', align: 'center',title: '修改人员',event: 'modiUser', hide:true} @@ -471,8 +471,8 @@ cacheShelves: $('#cacheShelves').val(), decDesc: $('#decDesc').val(), devMk: $('#devMk').val(), inEnable: $('#inEnable').val(), outEnable: $('#outEnable').val(), inEnable: $('#inEnable').next().hasClass('layui-form-checked') ? "Y" : "N", outEnable: $('#outEnable').next().hasClass('layui-form-checked') ? "Y" : "N", autoing: $('#autoing').val(), loading: $('#loading').val(), canining: $('#canining').val(), @@ -502,6 +502,9 @@ maxWt: $('#maxWt').val(), grossWt: $('#grossWt').val(), cartPos: $('#cartPos').val(), floor: $('#floor').val(), locType1: $('#locType1').val(), locType2: $('#locType2').val(), }; console.log(data); src/main/webapp/static/js/agvStoMan/stoQue.js
@@ -36,7 +36,8 @@ ,{field: 'lev1', align: 'center',title: '层'} ,{field: 'floor', align: 'center',title: '楼', sort:true} ,{field: 'barcode', align: 'center',title: '容器码', sort:true} ,{field: 'barcode', align: 'center',title: '容器类型', sort:true} ,{field: 'locType1$', align: 'center',title: '库位类型', sort:true} ,{field: 'locType2', align: 'center',title: '容器类型', sort:true} ,{field: 'fullPlt', align: 'center',title: '满板', templet:function(row){ var html = "<input value='fullPlt' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; if(row.fullPlt === 'Y'){html += " checked ";} src/main/webapp/static/js/agvWrkMast/wrkMast.js
@@ -31,7 +31,7 @@ ,{field: 'locNo', align: 'center',title: '目标库位'} //,{field: 'steNo', align: 'center',title: '小车', width: 70} ,{field: 'barcode', align: 'center',title: '容器码'} ,{field: 'barcode', align: 'center',title: '容器类型'} ,{field: 'whsType', align: 'center',title: '容器类型'} ,{field: 'preHave', align: 'center',title: '先入品', hide: true} ,{field: 'takeNone', align: 'center',title: '空操作', hide: true} // ,{field: 'picking', align: 'center',title: '拣料', templet:function(row){ src/main/webapp/views/agvBasDevp/basDevp.html
@@ -47,7 +47,6 @@ <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 class="layui-btn layui-btn-primary" id="btn-createWrk" lay-event="createWrk">入库</button> <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">导出</button> </div> </script> src/main/webapp/views/agvBasDevp/basDevp_detail.html
@@ -15,20 +15,6 @@ <!-- 详情 --> <div id="data-detail" class="layer_self_wrap"> <form id="detail" class="layui-form" style="text-align: left"> <!-- <div class="layui-inline" style="display: none"> <label class="layui-form-label"><span class="not-null">*</span>编 号:</label> <div class="layui-input-inline"> <input id="id" class="layui-input" type="text" placeholder="编号"> </div> </div> --> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label"><span class="not-null">*</span>工作站编号:</label> <div class="layui-input-inline"> <input id="stationCode" class="layui-input" type="text" > </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label"><span class="not-null">*</span>工作位编号:</label> <div class="layui-input-inline"> @@ -42,224 +28,35 @@ </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">缓存货架:</label> <div class="layui-input-inline"> <input id="cacheShelves" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">备 注:</label> <div class="layui-input-inline"> <input id="devMk" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">可 入:</label> <div class="layui-input-inline"> <input id="inEnable" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'> <input id="inEnable" class="layui-input" type="checkBox" lay-skin="primary" > </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">可 出:</label> <div class="layui-input-inline"> <input id="outEnable" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'> <input id="outEnable" class="layui-input" type="checkBox" lay-skin="primary" > </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">自 动:</label> <label class="layui-form-label">库位类型:</label> <div class="layui-input-inline"> <input id="autoing" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">有 物:</label> <div class="layui-input-inline"> <input id="loading" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">能 入:</label> <div class="layui-input-inline"> <input id="canining" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">能 出:</label> <div class="layui-input-inline"> <input id="canouting" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="fronting" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="rearing" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="uping" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="downing" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">需 求 1:</label> <div class="layui-input-inline"> <input id="inreq1" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">需 求 2:</label> <div class="layui-input-inline"> <input id="inreq2" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">工 作 号:</label> <div class="layui-input-inline"> <input id="wrkNo" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="wrkNo1" class="layui-input" type="text"> <input id="locType1" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">容器类型:</label> <div class="layui-input-inline"> <input id="ctnType" class="layui-input" type="text"> <input id="locType2" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">条 形 码:</label> <label class="layui-form-label">容器码:</label> <div class="layui-input-inline"> <input id="barcode" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">入库暂存:</label> <div class="layui-input-inline"> <input id="inQty" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="row1" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="ioTime$" class="layui-input" type="text" autocomplete="off"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="area" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="inOk" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="outOk" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">修改人员:</label> <div class="layui-input-inline cool-auto-complete"> <input id="modiUser" class="layui-input" type="text" style="display: none"> <input id="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入..." onfocus=this.blur()> <div class="cool-auto-complete-window"> <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))"> <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> </select> </div> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">修改时间:</label> <div class="layui-input-inline"> <input id="modiTime$" class="layui-input" type="text" autocomplete="off"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">创 建 者:</label> <div class="layui-input-inline cool-auto-complete"> <input id="appeUser" class="layui-input" type="text" style="display: none"> <input id="appeUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入..." onfocus=this.blur()> <div class="cool-auto-complete-window"> <input class="cool-auto-complete-window-input" data-key="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))"> <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> </select> </div> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">添加时间:</label> <div class="layui-input-inline"> <input id="appeTime$" class="layui-input" type="text" autocomplete="off"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="stdQty" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="minWt" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="maxWt" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">重 量:</label> <div class="layui-input-inline"> <input id="grossWt" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;display: none"> <label class="layui-form-label">:</label> <div class="layui-input-inline"> <input id="cartPos" class="layui-input" type="text"> </div> </div> <div class="layui-inline" style="width:31%;"> <label class="layui-form-label">设备描述:</label> <div class="layui-input-inline"> <input id="decDesc" class="layui-input" type="text"> </div> </div> <hr class="layui-bg-gray"> <div id="data-detail-btn" class="layui-btn-container layui-form-item">