| src/main/java/com/zy/asrs/controller/LocAroundBindController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/LocAroundBind.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/param/InitDeviceLocParams.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/LocAroundBindService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/LocAroundBindServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/static/js/locAroundBind/locAroundBind.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/static/js/locCache/locCache.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/views/locAroundBind/locAroundBind.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/LocAroundBindController.java
@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.plugins.Page; import com.core.common.DateUtils; import com.zy.asrs.entity.LocAroundBind; import com.zy.asrs.entity.LocCache; import com.zy.asrs.entity.param.InitDeviceLocParams; import com.zy.asrs.service.LocAroundBindService; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; @@ -32,22 +34,26 @@ @RequestMapping(value = "/locAroundBind/list/auth") @ManagerAuth public R list(@RequestParam(defaultValue = "1")Integer curr, @RequestParam(defaultValue = "10")Integer limit, @RequestParam(required = false)String orderByField, @RequestParam(required = false)String orderByType, @RequestParam Map<String, Object> param){ public R list(@RequestParam(defaultValue = "1") Integer curr, @RequestParam(defaultValue = "10") Integer limit, @RequestParam(required = false) String orderByField, @RequestParam(required = false) String orderByType, @RequestParam(required = false) String condition, @RequestParam Map<String, Object> param) { EntityWrapper<LocAroundBind> wrapper = new EntityWrapper<>(); excludeTrash(param); convert(param, wrapper); if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} allLike(LocAroundBind.class, param.keySet(), wrapper, condition); if (!Cools.isEmpty(orderByField)) { wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); } return R.ok(locAroundBindService.selectPage(new Page<>(curr, limit), wrapper)); } private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ for (Map.Entry<String, Object> entry : map.entrySet()){ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) { for (Map.Entry<String, Object> entry : map.entrySet()) { String val = String.valueOf(entry.getValue()); if (val.contains(RANGE_TIME_LINK)){ if (val.contains(RANGE_TIME_LINK)) { String[] dates = val.split(RANGE_TIME_LINK); wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); @@ -64,10 +70,10 @@ return R.ok(); } @RequestMapping(value = "/locAroundBind/update/auth") @ManagerAuth public R update(LocAroundBind locAroundBind){ if (Cools.isEmpty(locAroundBind) || null==locAroundBind.getId()){ @RequestMapping(value = "/locAroundBind/update/auth") @ManagerAuth public R update(LocAroundBind locAroundBind) { if (Cools.isEmpty(locAroundBind) || null == locAroundBind.getId()) { return R.error(); } locAroundBindService.updateById(locAroundBind); @@ -76,8 +82,8 @@ @RequestMapping(value = "/locAroundBind/delete/auth") @ManagerAuth public R delete(@RequestParam(value="ids[]") Long[] ids){ for (Long id : ids){ public R delete(@RequestParam(value = "ids[]") Long[] ids) { for (Long id : ids) { locAroundBindService.deleteById(id); } return R.ok(); @@ -85,7 +91,7 @@ @RequestMapping(value = "/locAroundBind/export/auth") @ManagerAuth public R export(@RequestBody JSONObject param){ public R export(@RequestBody JSONObject param) { EntityWrapper<LocAroundBind> wrapper = new EntityWrapper<>(); List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); Map<String, Object> map = excludeTrash(param.getJSONObject("locAroundBind")); @@ -101,7 +107,7 @@ wrapper.like("id", condition); Page<LocAroundBind> page = locAroundBindService.selectPage(new Page<>(0, 10), wrapper); List<Map<String, Object>> result = new ArrayList<>(); for (LocAroundBind locAroundBind : page.getRecords()){ for (LocAroundBind locAroundBind : page.getRecords()) { Map<String, Object> map = new HashMap<>(); map.put("id", locAroundBind.getId()); map.put("value", locAroundBind.getId()); @@ -113,11 +119,58 @@ @RequestMapping(value = "/locAroundBind/check/column/auth") @ManagerAuth public R query(@RequestBody JSONObject param) { Wrapper<LocAroundBind> wrapper = new EntityWrapper<LocAroundBind>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); if (null != locAroundBindService.selectOne(wrapper)){ Wrapper<LocAroundBind> wrapper = new EntityWrapper<LocAroundBind>() .eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); if (null != locAroundBindService.selectOne(wrapper)) { return R.parse(BaseRes.REPEAT).add(getComment(LocAroundBind.class, String.valueOf(param.get("key")))); } return R.ok(); } /** * 台机绑定作业库位 * * @param locAroundBind * @return */ @ManagerAuth @PostMapping(value = "/locAroundBind/bind/init") public R bind(@RequestBody InitDeviceLocParams params) { if (Cools.isEmpty(params)) { return R.error("参数不能为空"); } if (Cools.isEmpty(params.getDevNo())) { return R.error("台机号不能为空"); } if (Cools.isEmpty(params.getStartRow())) { return R.error("起始排不能为空"); } if (Cools.isEmpty(params.getEndRow())) { return R.error("终止排不能为空"); } if (Cools.isEmpty(params.getStartBay())) { return R.error("起始列不能为空"); } if (Cools.isEmpty(params.getEndBay())) { return R.error("终止列不能为空"); } if (Cools.isEmpty(params.getStartLev())) { return R.error("起始层不能为空"); } if (Cools.isEmpty(params.getEndLev())) { return R.error("终止层不能为空"); } if (params.getStartRow() > params.getEndRow()) { return R.error("起始排不能大于终止排"); } if (params.getStartBay() > params.getEndBay()) { return R.error("起始列不能大于终止列"); } if (params.getStartLev() > params.getEndLev()) { return R.error("起始层不能大于终止层"); } return locAroundBindService.bindLocs(params); } } src/main/java/com/zy/asrs/entity/LocAroundBind.java
@@ -1,5 +1,7 @@ package com.zy.asrs.entity; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.enums.IdType; import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableField; import io.swagger.annotations.ApiModelProperty; @@ -13,7 +15,8 @@ private static final long serialVersionUID = 1L; @ApiModelProperty(value= "") @ApiModelProperty(value= "ID") @TableId(value = "id", type = IdType.AUTO) private Long id; /** src/main/java/com/zy/asrs/entity/param/InitDeviceLocParams.java
New file @@ -0,0 +1,36 @@ package com.zy.asrs.entity.param; import java.io.Serializable; import lombok.Data; import lombok.experimental.Accessors; import io.swagger.annotations.ApiModel; @Data @ApiModel(value = "InitDeviceLocParams", description = "初始化台机库位参数") @Accessors(chain = true) public class InitDeviceLocParams implements Serializable { private static final long serialVersionUID = 1L; // 台机号 private String devNo; // 起始排 private Integer startRow; // 终止排 private Integer endRow; // 起始列 private Integer startBay; // 终止列 private Integer endBay; // 起始层 private Integer startLev; // 终止层 private Integer endLev; } src/main/java/com/zy/asrs/service/LocAroundBindService.java
@@ -1,8 +1,12 @@ package com.zy.asrs.service; import com.zy.asrs.entity.LocAroundBind; import com.zy.asrs.entity.param.InitDeviceLocParams; import com.baomidou.mybatisplus.service.IService; import com.core.common.R; public interface LocAroundBindService extends IService<LocAroundBind> { R bindLocs(InitDeviceLocParams params); } src/main/java/com/zy/asrs/service/impl/LocAroundBindServiceImpl.java
@@ -1,12 +1,83 @@ package com.zy.asrs.service.impl; import com.zy.asrs.mapper.LocAroundBindMapper; import com.zy.asrs.entity.BasDevice; import com.zy.asrs.entity.LocAroundBind; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.param.InitDeviceLocParams; import com.zy.asrs.enums.LocStsType; import com.zy.asrs.service.BasDeviceService; import com.zy.asrs.service.LocAroundBindService; import com.zy.asrs.service.LocMastService; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.Cools; import com.core.common.R; import com.core.exception.CoolException; import java.util.List; import java.util.Objects; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service("locAroundBindService") public class LocAroundBindServiceImpl extends ServiceImpl<LocAroundBindMapper, LocAroundBind> implements LocAroundBindService { public class LocAroundBindServiceImpl extends ServiceImpl<LocAroundBindMapper, LocAroundBind> implements LocAroundBindService { @Autowired private LocMastService locMastService; @Autowired private BasDeviceService basDeviceService; /** * 绑定作业库位 * * @param params * @return */ @Override @Transactional(rollbackFor = Exception.class) public R bindLocs(InitDeviceLocParams params) { // 校验参数 if (Cools.isEmpty(params.getStartRow()) || Cools.isEmpty(params.getEndRow()) || Cools.isEmpty(params.getStartBay()) || Cools.isEmpty(params.getEndBay()) || Cools.isEmpty(params.getStartLev()) || Cools.isEmpty(params.getEndLev())) { return R.error("参数错误"); } BasDevice basDevice = basDeviceService.selectOne(new EntityWrapper<BasDevice>() .eq("dev_no", params.getDevNo())); if (Objects.isNull(basDevice)) { return R.error("未查询到该设备"); } List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() .between("row1", params.getStartRow(), params.getEndRow()) .between("bay1", params.getStartBay(), params.getEndBay()) .between("lev1", params.getStartLev(), params.getEndLev()) .ne("loc_sts", LocStsType.LOC_STS_TYPE_X.type)); if (Cools.isEmpty(locMasts)) { return R.error("未查询到符合条件的库位"); } // 校验库位是否已绑定 for (LocMast mast : locMasts) { LocAroundBind aroundBind = this.selectOne(new EntityWrapper<LocAroundBind>() .eq("dev_no", params.getDevNo()) .eq("b_loc_no", mast.getLocNo())); if (!Objects.isNull(aroundBind)) { continue; } LocAroundBind bind = new LocAroundBind(); bind.setDevNo(params.getDevNo()); bind.setBLocNo(mast.getLocNo()); bind.setDevId(basDevice.getId()); if (!this.insert(bind)) { throw new CoolException("绑定库位失败"); } } return R.ok("绑定库位成功"); } } src/main/webapp/static/js/locAroundBind/locAroundBind.js
@@ -22,13 +22,11 @@ height: 'full-120', cols: [[ { type: 'checkbox' } , { field: 'number', align: 'center', title: '序号' } , { field: 'id', align: 'center', title: 'ID' } , { field: 'devId', align: 'center', title: '台机ID' } , { field: 'devNo', align: 'center', title: '台机号' } , { field: 'bLocId', align: 'center', title: '库位ID' } , { field: 'bLocNo', align: 'center', title: '库位码' } , { field: 'blocId', align: 'center', title: '库位ID', hide: true } , { field: 'blocNo', align: 'center', title: '库位码' } , { fixed: 'right', title: '操作', align: 'center', toolbar: '#operate', width: 120 } ]], request: { @@ -129,7 +127,7 @@ if (res.data) { layer.open({ type: 1, title: '初始化库位', title: '台机绑定作业库位', area: ["400px"], maxmin: true, shadeClose: true, @@ -148,6 +146,29 @@ } }); // 初始化保存 form.on('submit(initDo)', function (data) { $.ajax({ url: baseUrl + "/locAroundBind/bind/init", headers: { 'token': localStorage.getItem('token') }, data: JSON.stringify(data.field), contentType: 'application/json;charset=UTF-8', method: 'POST', async: false, success: function (res) { if (res.code === 200) { layer.msg(res.msg); layer.closeAll(); tableReload(false); } else if (res.code === 403) { parent.location.href = "/"; } else { layer.msg(res.msg) } } }) }); // 监听行工具事件 table.on('tool(locAroundBind)', function (obj) { var data = obj.data; src/main/webapp/static/js/locCache/locCache.js
@@ -119,8 +119,6 @@ } }); // 监听行工具事件 table.on('tool(locCache)', function (obj) { var data = obj.data; @@ -150,7 +148,6 @@ // 初始化保存 form.on('submit(initDo)', function (data) { console.log(data.field) $.ajax({ url: baseUrl + "/locCache/init/auth", headers: {'token': localStorage.getItem('token')}, src/main/webapp/views/locAroundBind/locAroundBind.html
@@ -13,16 +13,15 @@ </head> <body> <div class="layui-fluid"> <div class="layui-card"> <div class="layui-card-body"> <div class="layui-form toolbar" id="search-box"> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">编号:</label> <div class="layui-input-inline"> <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off"> <input class="layui-input" type="text" name="condition" placeholder="请输入" autocomplete="off"> </div> </div> <div class="layui-inline">  @@ -104,79 +103,57 @@ <div id="resetLocDiv" style="margin: 20px 0 10px 30px; display: none"> <div class="layui-form layui-form-pane"> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">删除库位</label> <div class="layui-input-inline" style="width: 100px;"> <input type="checkbox" name="enable" lay-skin="switch" value="1" lay-text="删除|保留"> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label"><span class="not-null">*</span>库区名称:</label> <div class="layui-input-inline cool-auto-complete"> <input id="identifying" name="identifying" class="layui-input" type="text" style="display: none"> <input id="identifying$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()> <div class="cool-auto-complete-window"> <input class="cool-auto-complete-window-input" data-key="basAreasQueryBywhsType" onkeyup="autoLoad(this.getAttribute('data-key'))"> <select class="cool-auto-complete-window-select" data-key="basAreasQueryBywhsTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> </select> </div> </div> <label class="layui-form-label">台机号</label> <div class="layui-input-inline"> <input type="text" name="devNo" autocomplete="off" class="layui-input"> </div> </div> <!-- 排 --> <div class="layui-form-item"> <label class="layui-form-label">堆垛机数量</label> <div class="layui-input-inline"> <input type="text" name="crnAmount" lay-verify="required|number" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">起始堆垛机</label> <div class="layui-input-inline"> <input type="text" name="staCrn" autocomplete="off" class="layui-input" lay-verify="number"> <label class="layui-form-label">起止排</label> <div class="layui-input-inline" style="width: 100px;"> <input type="text" name="startRow" autocomplete="off" class="layui-input" lay-verify="required|number"> </div> <div class="layui-form-mid">-</div> <div class="layui-input-inline" style="width: 100px;"> <input type="text" name="endRow" autocomplete="off" class="layui-input" lay-verify="required|number"> </div> </div> </div> <!-- 库位类型 --> <!-- 列 --> <div class="layui-form-item"> <label class="layui-form-label">高低类型</label> <div class="layui-input-inline"> <select name="locType1"> <option style="display: none"></option> <option value="0">未知</option> <option value="1">低库位</option> <option value="2">高库位</option> </select> <div class="layui-inline"> <label class="layui-form-label">起止列</label> <div class="layui-input-inline" style="width: 100px;"> <input type="text" name="startBay" autocomplete="off" class="layui-input" lay-verify="required|number"> </div> <div class="layui-form-mid">-</div> <div class="layui-input-inline" style="width: 100px;"> <input type="text" name="endBay" autocomplete="off" class="layui-input" lay-verify="required|number"> </div> </div> </div> <!-- 层 --> <div class="layui-form-item"> <label class="layui-form-label">宽窄类型</label> <div class="layui-input-inline"> <select name="locType2"> <option style="display: none"></option> <option value="0">未知</option> <option value="1">窄库位</option> <option value="2">宽库位</option> </select> <div class="layui-inline"> <label class="layui-form-label">起止层</label> <div class="layui-input-inline" style="width: 100px;"> <input type="text" name="startLev" autocomplete="off" class="layui-input" lay-verify="required|number"> </div> <div class="layui-form-mid">-</div> <div class="layui-input-inline" style="width: 100px;"> <input type="text" name="endLev" autocomplete="off" class="layui-input" lay-verify="required|number"> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">轻重类型</label> <div class="layui-input-inline"> <select name="locType3"> <option style="display: none"></option> <option value="0">未知</option> <option value="1">轻库位</option> <option value="2">重库位</option> </select> </div> </div> <!-- --> <div style="text-align: center; margin-top: 20px"> <button class="layui-btn layui-btn-radius layui-btn-normal" id="initDo" lay-submit lay-filter="initDo"> 确定