#
Junjie
4 天以前 d8d82ceda75fa17972d6996f83078367a19c1730
src/main/java/com/zy/ai/mcp/service/impl/WcsDataFacadeImpl.java
@@ -2,7 +2,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zy.ai.entity.DeviceConfigsData;
import com.zy.ai.log.AiLogAppender;
import com.zy.ai.mcp.service.WcsDataFacade;
@@ -49,14 +49,14 @@
    @Override
    public Object getCrnDeviceStatus(JSONObject args) {
        List<Integer> deviceNoList = optIntList(args, "crnNos");
        EntityWrapper<BasCrnp> wrapper = new EntityWrapper<>();
        QueryWrapper<BasCrnp> wrapper = new QueryWrapper<>();
        if (deviceNoList != null && deviceNoList.size() > 0) {
            wrapper.in("crn_no", deviceNoList);
        }
        JSONObject data = new JSONObject();
        List<Object> deviceList = new ArrayList<>();
        List<BasCrnp> basCrnps = basCrnpService.selectList(wrapper);
        List<BasCrnp> basCrnps = basCrnpService.list(wrapper);
        for (BasCrnp basCrnp : basCrnps) {
            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
            if (crnThread == null) {
@@ -72,7 +72,7 @@
    @Override
    public Object getStationDeviceStatus(JSONObject args) {
        List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>());
        List<BasDevp> basDevps = basDevpService.list(new QueryWrapper<>());
        JSONObject data = new JSONObject();
        List<Object> stationList = new ArrayList<>();
@@ -100,14 +100,14 @@
    @Override
    public Object getRgvDeviceStatus(JSONObject args) {
        List<Integer> deviceNoList = optIntList(args, "rgvNos");
        EntityWrapper<BasRgv> wrapper = new EntityWrapper<>();
        QueryWrapper<BasRgv> wrapper = new QueryWrapper<>();
        if (deviceNoList != null && deviceNoList.size() > 0) {
            wrapper.in("rgv_no", deviceNoList);
        }
        JSONObject data = new JSONObject();
        List<Object> deviceList = new ArrayList<>();
        List<BasRgv> basRgvs = basRgvService.selectList(wrapper);
        List<BasRgv> basRgvs = basRgvService.list(wrapper);
        for (BasRgv basRgv : basRgvs) {
            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo());
            if (rgvThread == null) {
@@ -124,26 +124,83 @@
    @Override
    public Object getTasks(JSONObject args) {
        int crnNo = optInt(args, "crnNo", -1);
        int dualCrnNo = optInt(args, "dualCrnNo", -1);
        int rgvNo = optInt(args, "rgvNo", -1);
        List<Integer> taskNos = optIntList(args, "taskNos");
        int sourceStaNo = optInt(args, "sourceStaNo", -1);
        int staNo = optInt(args, "staNo", -1);
        List<Integer> wrkNos = optIntList(args, "wrkNos");
        if (wrkNos.isEmpty()) {
            wrkNos = optIntList(args, "taskNos");
        }
        List<String> wmsWrkNos = optStrList(args, "wmsWrkNos");
        List<Long> wrkStsList = optLongList(args, "wrkStsList");
        List<Integer> ioTypeList = optIntList(args, "ioTypeList");
        String barcode = optStr(args, "barcode");
        String batch = optStr(args, "batch");
        String sourceLocNo = optStr(args, "sourceLocNo");
        String locNo = optStr(args, "locNo");
        int limit = optInt(args, "limit", 200);
        EntityWrapper<WrkMast> wrapper = new EntityWrapper<>();
        if (taskNos != null && taskNos.size() > 0) {
            wrapper.in("wrk_no", taskNos);
        QueryWrapper<WrkMast> wrapper = new QueryWrapper<>();
        if (!wrkNos.isEmpty()) {
            wrapper.in("wrk_no", wrkNos);
        }
        if (!wmsWrkNos.isEmpty()) {
            wrapper.in("wms_wrk_no", wmsWrkNos);
        }
        if (!wrkStsList.isEmpty()) {
            wrapper.in("wrk_sts", wrkStsList);
        }
        if (!ioTypeList.isEmpty()) {
            wrapper.in("io_type", ioTypeList);
        }
        if (crnNo != -1) {
            wrapper.eq("crn_no", crnNo);
        }
        if (dualCrnNo != -1) {
            wrapper.eq("dual_crn_no", dualCrnNo);
        }
        if (rgvNo != -1) {
            wrapper.eq("rgv_no", rgvNo);
        }
        List<WrkMast> tasks = wrkMastService.selectList(wrapper);
        if (sourceStaNo != -1) {
            wrapper.eq("source_sta_no", sourceStaNo);
        }
        if (staNo != -1) {
            wrapper.eq("sta_no", staNo);
        }
        if (barcode != null) {
            wrapper.like("barcode", barcode);
        }
        if (batch != null) {
            wrapper.like("batch", batch);
        }
        if (sourceLocNo != null) {
            wrapper.like("source_loc_no", sourceLocNo);
        }
        if (locNo != null) {
            wrapper.like("loc_no", locNo);
        }
        int safeLimit = Math.max(1, Math.min(limit, 500));
        wrapper.orderByDesc("io_time").orderByDesc("appe_time").last("limit " + safeLimit);
        List<WrkMast> tasks = wrkMastService.list(wrapper);
        JSONObject data = new JSONObject();
        data.put("tasks", tasks);
        data.put("count", tasks.size());
        return data;
    }
@@ -162,24 +219,24 @@
        List<DeviceConfigsData> deviceConfigsDataList = new ArrayList<>();
        List<Integer> crnNoList = optIntList(args, "crnNos");
        EntityWrapper<BasCrnp> crnWrapper = new EntityWrapper<>();
        QueryWrapper<BasCrnp> crnWrapper = new QueryWrapper<>();
        if (crnNoList != null && crnNoList.size() > 0) {
            crnWrapper.in("crn_no", crnNoList);
        }
        List<Integer> rgvNoList = optIntList(args, "rgvNos");
        EntityWrapper<BasRgv> rgvWrapper = new EntityWrapper<>();
        QueryWrapper<BasRgv> rgvWrapper = new QueryWrapper<>();
        if (rgvNoList != null && rgvNoList.size() > 0) {
            rgvWrapper.in("rgv_no", rgvNoList);
        }
        List<Integer> devpNoList = optIntList(args, "devpNos");
        EntityWrapper<BasDevp> devpWrapper = new EntityWrapper<>();
        QueryWrapper<BasDevp> devpWrapper = new QueryWrapper<>();
        if (devpNoList != null && devpNoList.size() > 0) {
            devpWrapper.in("devp_no", devpNoList);
        }
        List<BasCrnp> basCrnps = basCrnpService.selectList(crnWrapper);
        List<BasCrnp> basCrnps = basCrnpService.list(crnWrapper);
        for (BasCrnp basCrnp : basCrnps) {
            DeviceConfigsData deviceConfigsData = new DeviceConfigsData();
            deviceConfigsData.setDeviceNo(basCrnp.getCrnNo());
@@ -188,7 +245,7 @@
            deviceConfigsDataList.add(deviceConfigsData);
        }
        List<BasRgv> basRgvs = basRgvService.selectList(rgvWrapper);
        List<BasRgv> basRgvs = basRgvService.list(rgvWrapper);
        for (BasRgv basRgv : basRgvs) {
            DeviceConfigsData deviceConfigsData = new DeviceConfigsData();
            deviceConfigsData.setDeviceNo(basRgv.getRgvNo());
@@ -197,7 +254,7 @@
            deviceConfigsDataList.add(deviceConfigsData);
        }
        List<BasDevp> basDevps = basDevpService.selectList(devpWrapper);
        List<BasDevp> basDevps = basDevpService.list(devpWrapper);
        for (BasDevp basDevp : basDevps) {
            DeviceConfigsData deviceConfigsData = new DeviceConfigsData();
            deviceConfigsData.setDeviceNo(basDevp.getDevpNo());
@@ -213,7 +270,7 @@
    @Override
    public Object getSystemConfig(JSONObject args) {
        JSONObject data = new JSONObject();
        List<Config> systemConfigList = configService.selectList(new EntityWrapper<Config>().notIn("dingdingReportUrl"));
        List<Config> systemConfigList = configService.list(new QueryWrapper<Config>().ne("code", "dingdingReportUrl"));
        data.put("systemConfigs", systemConfigList);
        return data;
    }
@@ -310,6 +367,25 @@
        return list;
    }
    private String optStr(JSONObject o, String key) {
        if (o == null || !o.containsKey(key)) return null;
        String value = o.getString(key);
        if (value == null || value.trim().isEmpty()) return null;
        return value.trim();
    }
    private List<Long> optLongList(JSONObject o, String key) {
        if (o == null || !o.containsKey(key)) return Collections.emptyList();
        JSONArray arr = o.getJSONArray(key);
        if (arr == null) return Collections.emptyList();
        List<Long> list = new ArrayList<>();
        for (int i = 0; i < arr.size(); i++) {
            String s = arr.getString(i);
            if (s != null && !s.trim().isEmpty()) list.add(Long.parseLong(s.trim()));
        }
        return list;
    }
    private List<Integer> optIntList(JSONObject o, String key) {
        if (o == null || !o.containsKey(key)) return Collections.emptyList();
        JSONArray arr = o.getJSONArray(key);
@@ -321,4 +397,4 @@
        }
        return list;
    }
}
}