自动化立体仓库 - WMS系统
chen.lin
2026-02-14 371462edc6b3ee1de97c235d4a019b544badda0d
src/main/java/com/zy/asrs/controller/TaskController.java
@@ -1,17 +1,16 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.DateUtils;
import com.zy.asrs.entity.Task;
import com.zy.asrs.service.TaskService;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.Task;
import com.zy.asrs.service.TaskService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -40,7 +39,11 @@
                  @RequestParam Map<String, Object> param) {
        EntityWrapper<Task> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        // 移除非表字段参数,避免 SQL 报错「列名 wrk_sts_cb 无效」(agv_task 无此列,多为前端下拉描述字段)
        param.remove("wrk_sts_cb");
        param.remove("wrkStsCb");
        convert(param, wrapper);
        wrapper.eq("is_deleted", 0);
        allLike(Task.class, param.keySet(), wrapper, condition);
        if (!Cools.isEmpty(orderByField)) {
            wrapper.orderBy(humpToLine(orderByField), "desc".equals(orderByType));
@@ -58,6 +61,25 @@
                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 (val.contains(",") && !Cools.isEmpty(val) && !val.equals("null")) {
                // 多值查询:使用 IN 查询(适用于工作状态等多选场景)
                String[] values = val.split(",");
                List<Object> valueList = new ArrayList<>();
                for (String v : values) {
                    v = v.trim();
                    if (!Cools.isEmpty(v) && !v.equals("null")) {
                        // 尝试转换为数字类型(工作状态是Long类型)
                        try {
                            valueList.add(Long.parseLong(v));
                        } catch (NumberFormatException e) {
                            // 如果不是数字,保持字符串类型
                            valueList.add(v);
                        }
                    }
                }
                if (!valueList.isEmpty()) {
                    wrapper.in(entry.getKey(), valueList);
                }
            } else {
                wrapper.like(entry.getKey(), val);
            }
@@ -104,6 +126,9 @@
        } else if (type == 3) {
            taskService.pickWrkMast(workNo, getUserId());
            return R.ok("工作档已拣料");
        } else if (type == 4) {
            taskService.deleteWrkMast(workNo, getUserId());
            return R.ok("工作档已删除");
        }
        return R.ok();
    }
@@ -116,6 +141,7 @@
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        Map<String, Object> map = excludeTrash(param.getJSONObject("task"));
        convert(map, wrapper);
        wrapper.eq("is_deleted", 0);
        List<Task> list = taskService.selectList(wrapper);
        return R.ok(exportSupport(list, fields));
    }
@@ -125,6 +151,7 @@
    public R query(String condition) {
        EntityWrapper<Task> wrapper = new EntityWrapper<>();
        wrapper.like("id", condition);
        wrapper.eq("is_deleted", 0);
        Page<Task> page = taskService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (Task task : page.getRecords()) {