| | |
| | | return R.ok().add(mats); |
| | | } |
| | | |
| | | // @RequestMapping(value = "/mat/search/pda/auth") |
| | | // @ManagerAuth |
| | | // public R pdaSearch(@RequestParam(required = false)String condition){ |
| | | // EntityWrapper<Mat> wrapper = new EntityWrapper<>(); |
| | | // if (!Cools.isEmpty(condition)) { |
| | | //// wrapper.like("matnr", condition).or().like("maktx", condition); |
| | | // wrapper.like("matnr", condition).or().like("specs", condition); |
| | | // } |
| | | // wrapper.orderBy("create_time", false); |
| | | // List<Mat> mats = matService.selectList(wrapper); |
| | | // return R.ok().add(mats); |
| | | // } |
| | | |
| | | @RequestMapping(value = "/mat/search/pda/auth") |
| | | @ManagerAuth |
| | | public R pdaSearch(@RequestParam(required = false)String condition){ |
| | | EntityWrapper<Mat> wrapper = new EntityWrapper<>(); |
| | | if (!Cools.isEmpty(condition)) { |
| | | // wrapper.like("matnr", condition).or().like("maktx", condition); |
| | | wrapper.like("matnr", condition).or().like("specs", condition); |
| | | } |
| | | wrapper.orderBy("create_time", false); |
| | | List<Mat> mats = matService.selectList(wrapper); |
| | | List<Mat> mats = matService.selectByMatnrLink10(condition); |
| | | return R.ok().add(mats); |
| | | } |
| | | |
| | |
| | | Mat selectLatest(); |
| | | |
| | | List<Mat> selectByMatnrLink(@Param("matnr")String matnr); |
| | | List<Mat> selectByMatnrLink10(@Param("matnr")String matnr); |
| | | |
| | | Mat selectNewUpdateTime(); |
| | | |
| | |
| | | |
| | | Mat selectByMatnr(String matnr); |
| | | List<Mat> selectByMatnrLink(String matnr); |
| | | List<Mat> selectByMatnrLink10(String matnr); |
| | | Mat selectLatest(); |
| | | Page<Mat> getMatTurnPage(Page<Mat> page); |
| | | |
| | |
| | | return this.baseMapper.selectByMatnrLink(matnr); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<Mat> selectByMatnrLink10(String matnr) { |
| | | return this.baseMapper.selectByMatnrLink10(matnr); |
| | | } |
| | | |
| | | @Override |
| | | public Mat selectNewUpdateTime() { |
| | | return this.baseMapper.selectNewUpdateTime(); |
| | |
| | | throw new CoolException(param.getBarcode() + "数据正在进行入库"); |
| | | } |
| | | |
| | | if(param.getBarcode().length()!=6){ |
| | | throw new CoolException("条码长度不是6位===>>" + param.getBarcode()); |
| | | if(param.getBarcode().length()!=8){ |
| | | throw new CoolException("条码长度不是8位===>>" + param.getBarcode()); |
| | | } |
| | | // if (param.getCombMats().size()>1){ |
| | | // throw new CoolException("不允许混料===>>" + param.getBarcode()); |
| | |
| | | */ |
| | | public static String getShallowLoc(SlaveProperties slaveProperties, String deepLoc) { |
| | | int row = getRow(deepLoc); |
| | | if (row==9 || row == 10){ |
| | | return deepLoc; |
| | | } |
| | | boolean deepLocLeft = isDeepLocLeft(slaveProperties, row); |
| | | boolean deepLocRight = isDeepLocRight(slaveProperties, row); |
| | | int targetRow; |
| | |
| | | */ |
| | | public static String getDeepLoc(SlaveProperties slaveProperties, String shallowLoc) { |
| | | int row = getRow(shallowLoc); |
| | | if (row==9 || row == 10){ |
| | | return shallowLoc; |
| | | } |
| | | boolean deepLocLeft = isDeepLocLeft(slaveProperties, row-1); |
| | | boolean deepLocRight = isDeepLocRight(slaveProperties, row+1); |
| | | int targetRow; |
| | |
| | | * 获取 浅库位排对应的深库位排 |
| | | */ |
| | | public static Integer getDeepRow(SlaveProperties slaveProperties, Integer shallowRow) { |
| | | if (shallowRow==9 || shallowRow == 10){ |
| | | return shallowRow; |
| | | } |
| | | boolean deepLocLeft = isDeepLocLeft(slaveProperties, shallowRow-1); |
| | | boolean deepLocRight = isDeepLocRight(slaveProperties, shallowRow+1); |
| | | int targetRow; |
| | |
| | | # 双深 |
| | | doubleDeep: true |
| | | # 双深库位排号 |
| | | doubleLocs: 1,4,5,8,9,12,13,16,17,20 |
| | | doubleLocs: 1,4,5,8,11,14 |
| | | # 一个堆垛机负责的货架排数 |
| | | groupCount: 4 |
| | | # 左深库位排号 |
| | | doubleLocsLeft: 1,5,9,13,17 |
| | | doubleLocsLeft: 1,5,11 |
| | | # 右深库位排号 |
| | | doubleLocsRight: 4,8,12,16,20 |
| | | doubleLocsRight: 4,8,14 |
| | | # wms参数配置 |
| | | wms-parameter: |
| | | # 自动补空板功能开关 |
| | |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="selectByMatnrLink10" resultMap="BaseResultMap"> |
| | | select TOP 20 * from man_mat |
| | | where 1=1 |
| | | <if test="matnr != null and matnr != ''"> |
| | | and mm.matnr like concat('%',#{matnr},'%') |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="selectNewUpdateTime" resultMap="BaseResultMap"> |
| | | select top 1 * from man_mat |
| | | where 1=1 |
| | |
| | | <svg class="container" |
| | | viewBox="0 0 1200 850" |
| | | preserveAspectRatio="xMidYMid meet"> |
| | | <path d="M 1200,750 |
| | | L 1200,100 |
| | | C 1200,100 1200,50 1150,50 |
| | | C 1150,50 1100,50 1100,100 |
| | | L 1100,700 |
| | | C 1100,700 1100,750 1050,750 |
| | | L 60,750 |
| | | C 60,750 10,750 10,800 |
| | | C 10,800 10,850 60,850 |
| | | L 1100,850 |
| | | C 1100,850 1200,850 1200,750" |
| | | <path d="M 100,225 L 1100,225" |
| | | style="fill:none; stroke:blue; stroke-width:3; stroke-dasharray:10,1;"/> |
| | | <path d="M 100,625 L 1100,625" |
| | | style="fill:none; stroke:blue; stroke-width:3; stroke-dasharray:10,1;"/> |
| | | </svg> |
| | | |
| | | <div v-for="station in tableDataDev" class="station" :style="{ |
| | | top: convertToCSSPosition(station.valueX, station.valueY).y + 'px', |
| | | left: convertToCSSPosition(station.valueX, station.valueY).x + 'px', |
| | | top: convertToCSSPosition2(station.index,station.valueX, station.valueY).y + 'px', |
| | | left: convertToCSSPosition2(station.index,station.valueX, station.valueY).x + 'px', |
| | | backgroundColor: station.modeColor}"> |
| | | <div class="corner corner-tl"></div> |
| | | <div class="corner corner-tr"></div> |
| | |
| | | </div> |
| | | |
| | | <!-- Left Task Bar --> |
| | | <div class="task-bar-left left-task-bar" > |
| | | <!--<div class="task-bar-left left-task-bar" > |
| | | <div> |
| | | <el-tooltip :content="'Switch value: ' + valueLeft" placement="top"> |
| | | <el-switch |
| | |
| | | prop="crnEndTime" |
| | | label="执行结束时间"> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="modiTime"--> |
| | | <!-- label="更新时间">--> |
| | | <!-- </el-table-column>--> |
| | | <!– <el-table-column–> |
| | | <!– prop="modiTime"–> |
| | | <!– label="更新时间">–> |
| | | <!– </el-table-column>–> |
| | | <el-table-column |
| | | prop="rgvSts" |
| | | label="RGV状态"> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- Right Task Bar --> |
| | | <!– Right Task Bar –> |
| | | <div class="task-bar-right right-task-bar"> |
| | | <div> |
| | | <el-tooltip :content="'Switch value: ' + valueRight" placement="top"> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </div>--> |
| | | </div> |
| | | |
| | | <script> |
| | |
| | | mappedStations() { |
| | | return this.tableDataDev.map(station => ({ |
| | | ...station, |
| | | position: this.convertToCSSPosition(station.valueX, station.valueY) |
| | | position: this.convertToCSSPosition2(station.index,station.valueX, station.valueY) |
| | | })); |
| | | } |
| | | }, |
| | |
| | | convertToCSSPositionWithOffset(svgX, svgY, radius) { |
| | | const basePos = this.convertToCSSPosition(svgX, svgY); |
| | | return { |
| | | x: basePos.x -16.5, |
| | | y: basePos.y -16.5 |
| | | x: basePos.x-16.5, |
| | | y: basePos.y-16.5 |
| | | }; |
| | | }, |
| | | // 更新body尺寸 |
| | |
| | | }; |
| | | }, |
| | | |
| | | // 坐标转换函数 |
| | | convertToCSSPosition2(devNo,svgX, svgY) { |
| | | const svgWidth = 1200; // SVG 原始宽度 |
| | | let svgWidthR = 0; // |
| | | const svgHeight = 850; // SVG 原始高度 |
| | | let svgHeightR = 0; // |
| | | if (svgX>svgWidth/2){ |
| | | svgWidthR = (((svgX-svgWidth/2)/svgWidth) * this.containerSize.width) + this.bodySize.width/2 - this.bodySize.width*((1-0.52)/2); |
| | | } else { |
| | | svgWidthR = this.bodySize.width/2 - (((svgWidth/2 - svgX)/svgWidth) * this.containerSize.width) - this.bodySize.width*((1-0.52)/2); |
| | | } |
| | | if (svgY>svgHeight/2){ |
| | | svgHeightR = (((svgY-svgHeight/2)/svgHeight) * this.containerSize.height) + this.bodySize.height/2 - this.bodySize.height*((1-0.72)/2); |
| | | } else { |
| | | svgHeightR = this.bodySize.height/2 - (((svgHeight/2 - svgY)/svgHeight) * this.containerSize.height) - this.bodySize.height*((1-0.72)/2); |
| | | } |
| | | svgHeightR = svgHeightR-60; |
| | | if(devNo>200){ |
| | | if (devNo>216){ |
| | | svgHeightR = svgHeightR+80; |
| | | } |
| | | } else { |
| | | if (devNo>116){ |
| | | svgHeightR = svgHeightR+80; |
| | | } else { |
| | | if(devNo === 114 || devNo === 112 ){ |
| | | svgWidthR = svgWidthR-20; |
| | | } else { |
| | | svgWidthR = svgWidthR+40; |
| | | } |
| | | |
| | | } |
| | | } |
| | | if(devNo === 116){ |
| | | svgHeightR = svgHeightR-35; |
| | | } |
| | | return { |
| | | x: svgWidthR, |
| | | y: svgHeightR |
| | | }; |
| | | }, |
| | | |
| | | handleZoom(e) { |
| | | const scaleDelta = e.deltaY > 0 ? 0.9 : 1.1; |
| | | const currentScale = this.scale || 1; |