自动化立体仓库 - WMS系统
zhangc
2025-03-24 cfc4421af2ba05a786300e70e21c779ddbd39836
工作档查询条件
5个文件已修改
240 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/AgvWrkMastController.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/agvWrkMast/wrkMast.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/agvWrkMast/wrkMast.html 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/agvWrkMastLog/wrkMastLog.html 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
@@ -36,22 +37,22 @@
    @RequestMapping(value = "/wrkMast/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(required = false)String condition,
                  @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) {
        excludeTrash(param);
        EntityWrapper<AgvWrkMast> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
        convert2(param, wrapper);
        allLike(AgvWrkMast.class, param.keySet(), wrapper, condition);
        if (!Cools.isEmpty(orderByField)){
            if (orderByField.endsWith("$")){
                orderByField = orderByField.substring(0, orderByField.length()-1);
        if (!Cools.isEmpty(orderByField)) {
            if (orderByField.endsWith("$")) {
                orderByField = orderByField.substring(0, orderByField.length() - 1);
            }
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        }else {
        } else {
            wrapper.orderBy("io_time", false);
        }
        Page<AgvWrkMast> agvWrkMastPage = agvWrkMastService.selectPage(new Page<>(curr, limit), wrapper);
@@ -60,37 +61,59 @@
    @RequestMapping(value = "/wrkMast/list/auth/dbList")
    @ManagerAuth
    public R dbList(@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){
    public R dbList(@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) {
        excludeTrash(param);
        EntityWrapper<AgvWrkMast> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
        allLike(AgvWrkMast.class, param.keySet(), wrapper, condition);
        if (!Cools.isEmpty(orderByField)){
            if (orderByField.endsWith("$")){
                orderByField = orderByField.substring(0, orderByField.length()-1);
        if (!Cools.isEmpty(orderByField)) {
            if (orderByField.endsWith("$")) {
                orderByField = orderByField.substring(0, orderByField.length() - 1);
            }
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        }else {
        } else {
            wrapper.orderBy("io_time", false);
        }
        wrapper.in("io_type",108,111,112);
        wrapper.in("io_type", 108, 111, 112);
        return R.ok(agvWrkMastService.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]));
            } else {
                wrapper.eq(entry.getKey(), val);
            }
        }
    }
    private <T> void convert2(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)) {
                String[] dates = val.split(RANGE_TIME_LINK);
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
            } else {
                String key = entry.getKey();
                if (key.startsWith("%") && key.endsWith("%")) {
                    wrapper.like(entry.getKey().replaceAll("%", ""), val);
                } else if (key.startsWith("%")) {
                    wrapper.like(entry.getKey().replace("%", ""), val, SqlLike.LEFT);
                } else if (key.endsWith("%")) {
                    wrapper.like(entry.getKey().replace("%", ""), val, SqlLike.RIGHT);
                } else {
                    wrapper.eq(entry.getKey(), val);
                }
            }
        }
    }
@@ -108,12 +131,12 @@
    @RequestMapping(value = "/wrkMast/delete/auth")
    @ManagerAuth(memo = "工作档删除")
    public R delete(@RequestParam String param){
    public R delete(@RequestParam String param) {
        List<AgvWrkMast> list = JSONArray.parseArray(param, AgvWrkMast.class);
        if (Cools.isEmpty(list)){
        if (Cools.isEmpty(list)) {
            return R.error("工作档参数缺失");
        }
        for (AgvWrkMast entity : list){
        for (AgvWrkMast entity : list) {
            agvWrkMastService.delete(new EntityWrapper<>(entity));
        }
        return R.ok();
@@ -121,7 +144,7 @@
    @RequestMapping(value = "/wrkMast/export/auth")
    @ManagerAuth(memo = "工作档导出")
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        EntityWrapper<AgvWrkMast> wrapper = new EntityWrapper<>();
        Map<String, Object> map = excludeTrash(param.getJSONObject("wrkMast"));
@@ -137,7 +160,7 @@
        wrapper.like("wrk_no", condition);
        Page<AgvWrkMast> page = agvWrkMastService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (AgvWrkMast wrkMast : page.getRecords()){
        for (AgvWrkMast wrkMast : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", wrkMast.getWrkNo());
            map.put("value", wrkMast.getWrkNo());
@@ -150,7 +173,7 @@
    @ManagerAuth
    public R query(@RequestBody JSONObject param) {
        Wrapper<AgvWrkMast> wrapper = new EntityWrapper<AgvWrkMast>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
        if (null != agvWrkMastService.selectOne(wrapper)){
        if (null != agvWrkMastService.selectOne(wrapper)) {
            return R.parse(BaseRes.REPEAT).add(getComment(AgvWrkMast.class, String.valueOf(param.get("key"))));
        }
        return R.ok();
@@ -162,7 +185,7 @@
        if (list.isEmpty()) {
            return R.error("请至少选择一行数据");
        }
        for (AgvWrkMast entity : list){
        for (AgvWrkMast entity : list) {
            entity.setIoPri(entity.getIoPri() + 1);
        }
        agvWrkMastService.updateBatchById(list);
@@ -175,7 +198,7 @@
        if (list.isEmpty()) {
            return R.error("请至少选择一行数据");
        }
        for (AgvWrkMast entity : list){
        for (AgvWrkMast entity : list) {
            entity.setIoPri(entity.getIoPri() - 1);
        }
        agvWrkMastService.updateBatchById(list);
src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
@@ -37,22 +38,22 @@
    @RequestMapping(value = "/wrkMastLog/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(required = false)String condition,
                  @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) {
        excludeTrash(param);
        EntityWrapper<AgvWrkMastLog> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
        convert2(param, wrapper);
        allLike(AgvWrkMastLog.class, param.keySet(), wrapper, condition);
        if (!Cools.isEmpty(orderByField)){
            if (orderByField.endsWith("$")){
                orderByField = orderByField.substring(0, orderByField.length()-1);
        if (!Cools.isEmpty(orderByField)) {
            if (orderByField.endsWith("$")) {
                orderByField = orderByField.substring(0, orderByField.length() - 1);
            }
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        }else {
        } else {
            wrapper.orderBy("modi_time", false);
        }
        return R.ok(wrkMastLogService.selectPage(new Page<>(curr, limit), wrapper));
@@ -60,38 +61,60 @@
    @RequestMapping(value = "/wrkMastLogWithWrktype/list/auth")
    @ManagerAuth
    public R wrkMastLogWithWrktypeList(@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){
    public R wrkMastLogWithWrktypeList(@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) {
        excludeTrash(param);
        EntityWrapper<AgvWrkMastLog> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
        allLike(AgvWrkMastLog.class, param.keySet(), wrapper, condition);
        if (!Cools.isEmpty(orderByField)){
            if (orderByField.endsWith("$")){
                orderByField = orderByField.substring(0, orderByField.length()-1);
        if (!Cools.isEmpty(orderByField)) {
            if (orderByField.endsWith("$")) {
                orderByField = orderByField.substring(0, orderByField.length() - 1);
            }
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        }else {
        } else {
            wrapper.orderBy("modi_time", false);
        }
        return R.ok(wrkMastLogService.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]));
            } else {
                if (entry.getKey().equals("manu_type")) {
                    wrapper.like(entry.getKey(), val);
                } else {
                    wrapper.eq(entry.getKey(), val);
                }
            }
        }
    }
    private <T> void convert2(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)) {
                String[] dates = val.split(RANGE_TIME_LINK);
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
            } else {
                String key = entry.getKey();
                if (key.startsWith("%") && key.endsWith("%")) {
                    wrapper.like(entry.getKey().replaceAll("%", ""), val);
                } else if (key.startsWith("%")) {
                    wrapper.like(entry.getKey().replace("%", ""), val, SqlLike.LEFT);
                } else if (key.endsWith("%")) {
                    wrapper.like(entry.getKey().replace("%", ""), val, SqlLike.RIGHT);
                } else {
                    wrapper.eq(entry.getKey(), val);
                }
@@ -106,10 +129,10 @@
        return R.ok();
    }
    @RequestMapping(value = "/wrkMastLog/update/auth")
    @ManagerAuth(memo = "工作历史档修改")
    public R update(AgvWrkMastLog wrkMastLog){
        if (Cools.isEmpty(wrkMastLog) || null==wrkMastLog.getId()){
    @RequestMapping(value = "/wrkMastLog/update/auth")
    @ManagerAuth(memo = "工作历史档修改")
    public R update(AgvWrkMastLog wrkMastLog) {
        if (Cools.isEmpty(wrkMastLog) || null == wrkMastLog.getId()) {
            return R.error("参数缺失");
        }
        wrkMastLogService.updateById(wrkMastLog);
@@ -118,12 +141,12 @@
    @RequestMapping(value = "/wrkMastLog/delete/auth")
    @ManagerAuth(memo = "工作历史档删除")
    public R delete(@RequestParam String param){
    public R delete(@RequestParam String param) {
        List<AgvWrkMastLog> list = JSONArray.parseArray(param, AgvWrkMastLog.class);
        if (Cools.isEmpty(list)){
        if (Cools.isEmpty(list)) {
            return R.error("参数缺失");
        }
        for (AgvWrkMastLog entity : list){
        for (AgvWrkMastLog entity : list) {
            wrkMastLogService.delete(new EntityWrapper<>(entity));
        }
        return R.ok();
@@ -131,7 +154,7 @@
    @RequestMapping(value = "/wrkMastLog/export/auth")
    @ManagerAuth(memo = "工作历史档导出")
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        EntityWrapper<AgvWrkMastLog> wrapper = new EntityWrapper<>();
        Map<String, Object> map = excludeTrash(param.getJSONObject("wrkMastLog"));
@@ -147,7 +170,7 @@
        wrapper.like("id", condition);
        Page<AgvWrkMastLog> page = wrkMastLogService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (AgvWrkMastLog wrkMastLog : page.getRecords()){
        for (AgvWrkMastLog wrkMastLog : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", wrkMastLog.getId());
            map.put("value", wrkMastLog.getId());
@@ -160,7 +183,7 @@
    @ManagerAuth
    public R query(@RequestBody JSONObject param) {
        Wrapper<AgvWrkMastLog> wrapper = new EntityWrapper<AgvWrkMastLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
        if (null != wrkMastLogService.selectOne(wrapper)){
        if (null != wrkMastLogService.selectOne(wrapper)) {
            return R.parse(BaseRes.REPEAT).add(getComment(WrkMastLog.class, String.valueOf(param.get("key"))));
        }
        return R.ok();
src/main/webapp/static/js/agvWrkMast/wrkMast.js
@@ -21,7 +21,7 @@
        cols: [[
            {type: 'checkbox'}
            ,{field: 'wrkNo', align: 'center',title: '工作号',sort: true, width: 85}
            ,{field: 'modiTime$', align: 'center',title: '工作时间',sort: true, width: 160}
            ,{field: 'modiTime$', align: 'center',title: '最新更新时间',sort: true, width: 160}
            ,{field: 'wrkSts$', align: 'center',title: '工作状态'}
            ,{field: 'ioType$', align: 'center',title: '入出库类型'}
            ,{field: 'ioPri', align: 'center',title: '优先级',width: 80}
@@ -58,7 +58,7 @@
            // ,{field: 'crnEndTime$', align: 'center',title: '堆垛机停止时间'}
            // ,{field: 'refIotime$', align: 'center',title: '拣料时间'}
            ,{field: 'appeUser$', align: 'center',title: '用户'}
            ,{field: 'appeTime$', align: 'center',title: '开始时间', hide:false, width: 160}
            ,{field: 'appeTime$', align: 'center',title: '创建时间', hide:false, width: 160}
            ,{field: 'modiUser$', align: 'center',title: '修改人员', hide:true}
            ,{field: 'modiTime$', align: 'center',title: '修改时间', hide:true, width: 160}
            // ,{field: 'memo', align: 'center',title: '备注'}
src/main/webapp/views/agvWrkMast/wrkMast.html
@@ -97,6 +97,21 @@
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="%source_loc_no%" placeholder="源库位" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="%loc_no%" placeholder="目标库位" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="barcode%" placeholder="货架前两位" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="condition" placeholder="请输入" autocomplete="off">
        </div>
    </div>
@@ -144,7 +159,7 @@
<script type="text/javascript" src="../../static/layui/layui.js?v=100" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js?v=100" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js?v=100" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/agvWrkMast/wrkMast.js?v=3" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/agvWrkMast/wrkMast.js?v=4" charset="utf-8"></script>
<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
src/main/webapp/views/agvWrkMastLog/wrkMastLog.html
@@ -40,21 +40,36 @@
            </div>
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline cool-auto-complete">
            <input id="crnNo" class="layui-input" name="crn_no" type="text" placeholder="请输入" autocomplete="off" style="display: none">
            <input id="crnNo$" 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="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
                <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                </select>
            </div>
        </div>
    </div>
<!--    <div class="layui-inline">-->
<!--        <div class="layui-input-inline cool-auto-complete">-->
<!--            <input id="crnNo" class="layui-input" name="crn_no" type="text" placeholder="请输入" autocomplete="off" style="display: none">-->
<!--            <input id="crnNo$" 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="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
<!--                <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
<!--                </select>-->
<!--            </div>-->
<!--        </div>-->
<!--    </div>-->
    <!-- 日期范围 -->
    <div class="layui-inline" style="width: 300px">
        <div class="layui-input-inline">
            <input class="layui-input layui-laydate-range" name="io_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="%source_loc_no%" placeholder="源库位" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="%loc_no%" placeholder="目标库位" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="barcode%" placeholder="货架前两位" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
@@ -89,7 +104,7 @@
<script type="text/javascript" src="../../static/layui/layui.js?v=100" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js?v=100" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js?v=100" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/agvWrkMastLog/wrkMastLog.js?v=2" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/agvWrkMastLog/wrkMastLog.js?v=5" charset="utf-8"></script>
<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>