From a6b253099ba7f1609e30911821d19c7b06a716ec Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期一, 30 三月 2026 09:22:24 +0800
Subject: [PATCH] 电视机接口
---
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/open/param/QueryTaskParam.java | 12 +
rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/MonitorController.java | 30 ++++
rsf-server/src/main/java/com/vincent/rsf/server/api/service/OpenAsrsService.java | 18 ++
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/OpenAsrsServiceImpl.java | 196 ++++++++++++++++++++++++++++
rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/fallback/WmsServerFeignClientFallback.java | 38 ++++-
rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/WmsServerFeignClient.java | 17 ++
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MonitorController.java | 31 ++++
rsf-open-api/pom.xml | 2
rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/OpenAsrsMapper.java | 28 ++++
9 files changed, 364 insertions(+), 8 deletions(-)
diff --git a/rsf-open-api/pom.xml b/rsf-open-api/pom.xml
index 2cc6940..d8215d0 100644
--- a/rsf-open-api/pom.xml
+++ b/rsf-open-api/pom.xml
@@ -21,7 +21,7 @@
<artifactId>rsf-common</artifactId>
<version>1.0.0</version>
</dependency>
- <!-- OpenFeign锛氳浆鍙戣皟鐢ㄧ珛搴� WMS 鎺ュ彛 -->
+ <!-- OpenFeign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/MonitorController.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/MonitorController.java
index 084e62c..c1716f1 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/MonitorController.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/MonitorController.java
@@ -1,9 +1,11 @@
package com.vincent.rsf.openApi.controller;
import com.vincent.rsf.openApi.entity.dto.CommonResponse;
+import com.vincent.rsf.openApi.feign.wms.WmsServerFeignClient;
import com.vincent.rsf.openApi.service.MonitorService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -21,6 +23,34 @@
@Autowired
private MonitorService monitorService;
+
+ @Autowired
+ private WmsServerFeignClient wmsServerFeignClient;
+
+ @GetMapping("/queryLoc")
+ @ApiOperation("澶у睆锛氬簱浣嶅簱瀛樼粺璁�")
+ public Map<String, Object> queryLoc() {
+ return wmsServerFeignClient.openAsrsQueryLoc();
+ }
+
+ @GetMapping("/line/charts")
+ @ApiOperation("澶у睆锛氬叆鍑哄簱鎶樼嚎鍥炬暟鎹�")
+ public Map<String, Object> lineCharts() {
+ return wmsServerFeignClient.openAsrsLineCharts();
+ }
+
+ @GetMapping("/locDetl/statistics")
+ @ApiOperation("澶у睆锛氬簱瀛樻槑缁嗗垎椤电粺璁�")
+ public Map<String, Object> locDetlStatistics() {
+ return wmsServerFeignClient.openAsrsLocDetlStatistics();
+ }
+
+ @PostMapping("/queryTask")
+ @ApiOperation("澶у睆锛氫换鍔℃煡璇�")
+ public Map<String, Object> queryTask(@RequestBody Map<String, Object> body) {
+ return wmsServerFeignClient.openAsrsQueryTask(body);
+ }
+
/**
* 鑾峰彇鍑哄叆搴撴祦姘磋褰�
* @return
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/WmsServerFeignClient.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/WmsServerFeignClient.java
index bcc327e..a0bc51a 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/WmsServerFeignClient.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/WmsServerFeignClient.java
@@ -4,6 +4,7 @@
import com.vincent.rsf.openApi.entity.params.ErpOpParams;
import com.vincent.rsf.openApi.feign.wms.fallback.WmsServerFeignClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -52,4 +53,20 @@
/** 搴撳瓨姹囨�绘煡璇紙瀵规帴鍗忚 8.5锛� */
@PostMapping("/rsf-server/erp/inventory/summary")
Map<String, Object> inventorySummary(@RequestBody Map<String, Object> params);
+
+ /** 澶у睆锛氬簱浣嶅簱瀛樼粺璁� */
+ @GetMapping("/rsf-server/monitor/queryLoc")
+ Map<String, Object> openAsrsQueryLoc();
+
+ /** 澶у睆锛氬叆鍑哄簱鎶樼嚎鍥炬暟鎹� */
+ @GetMapping("/rsf-server/monitor/line/charts")
+ Map<String, Object> openAsrsLineCharts();
+
+ /** 澶у睆锛氬簱瀛樻槑缁嗗垎椤电粺璁� */
+ @GetMapping("/rsf-server/monitor/locDetl/statistics")
+ Map<String, Object> openAsrsLocDetlStatistics();
+
+ /** 澶у睆锛氫换鍔℃煡璇� */
+ @PostMapping("/rsf-server/monitor/queryTask")
+ Map<String, Object> openAsrsQueryTask(@RequestBody Map<String, Object> body);
}
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/fallback/WmsServerFeignClientFallback.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/fallback/WmsServerFeignClientFallback.java
index 1d354f6..7d6b64d 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/fallback/WmsServerFeignClientFallback.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/fallback/WmsServerFeignClientFallback.java
@@ -88,43 +88,67 @@
@Override
public Map<String, Object> queryOrderAndDetls(ErpOpParams params) {
- log.error("璋冪敤绔嬪簱WMS Server璁㈠崟淇℃伅鏌ヨ鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
+ log.error("璋冪敤WMS Server璁㈠崟淇℃伅鏌ヨ鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
return errorResponse();
}
@Override
public Map<String, Object> updateOrderDetls(List<Map<String, Object>> body) {
- log.error("璋冪敤绔嬪簱WMS Server璁㈠崟淇敼鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
+ log.error("璋冪敤WMS Server璁㈠崟淇敼鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
return errorResponse();
}
@Override
public Map<String, Object> orderDel(List<Map<String, Object>> body) {
- log.error("璋冪敤绔嬪簱WMS Server鍙栨秷鍗曟嵁鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
+ log.error("璋冪敤WMS Server鍙栨秷鍗曟嵁鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
return errorResponse();
}
@Override
public Map<String, Object> syncMatnrs(ErpMatnrParms params) {
- log.error("璋冪敤绔嬪簱WMS Server鐗╂枡淇℃伅鍚屾鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
+ log.error("璋冪敤WMS Server鐗╂枡淇℃伅鍚屾鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
return errorResponse();
}
@Override
public Map<String, Object> queryLocsDetls(Map<String, Object> params) {
- log.error("璋冪敤绔嬪簱WMS Server搴撲綅淇℃伅鏌ヨ鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
+ log.error("璋冪敤WMS Server搴撲綅淇℃伅鏌ヨ鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
return errorResponse();
}
@Override
public Map<String, Object> inventoryDetails(Map<String, Object> params) {
- log.error("璋冪敤绔嬪簱WMS Server搴撳瓨鏄庣粏鏌ヨ鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
+ log.error("璋冪敤WMS Server搴撳瓨鏄庣粏鏌ヨ鎺ュ彛澶辫触锛岃Е鍙戦檷绾�", cause);
return errorResponse();
}
@Override
public Map<String, Object> inventorySummary(Map<String, Object> params) {
- log.error("璋冪敤绔嬪簱WMS Server搴撳瓨姹囨�绘煡璇㈡帴鍙eけ璐ワ紝瑙﹀彂闄嶇骇", cause);
+ log.error("璋冪敤WMS Server搴撳瓨姹囨�绘煡璇㈡帴鍙eけ璐ワ紝瑙﹀彂闄嶇骇", cause);
+ return errorResponse();
+ }
+
+ @Override
+ public Map<String, Object> openAsrsQueryLoc() {
+ log.error("璋冪敤 monitor/queryLoc 澶辫触锛岃Е鍙戦檷绾�", cause);
+ return errorResponse();
+ }
+
+ @Override
+ public Map<String, Object> openAsrsLineCharts() {
+ log.error("璋冪敤 monitor/line/charts 澶辫触锛岃Е鍙戦檷绾�", cause);
+ return errorResponse();
+ }
+
+ @Override
+ public Map<String, Object> openAsrsLocDetlStatistics() {
+ log.error("璋冪敤 monitor/locDetl/statistics 澶辫触锛岃Е鍙戦檷绾�", cause);
+ return errorResponse();
+ }
+
+ @Override
+ public Map<String, Object> openAsrsQueryTask(Map<String, Object> body) {
+ log.error("璋冪敤 monitor/queryTask 澶辫触锛岃Е鍙戦檷绾�", cause);
return errorResponse();
}
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/open/param/QueryTaskParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/open/param/QueryTaskParam.java
new file mode 100644
index 0000000..66851f1
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/open/param/QueryTaskParam.java
@@ -0,0 +1,12 @@
+package com.vincent.rsf.server.api.controller.open.param;
+
+import lombok.Data;
+
+/**
+ * 寮�鏀句换鍔℃煡璇㈠叆鍙傦紙涓� gsl QueryTaskParam 瀛楁涓�鑷达級
+ */
+@Data
+public class QueryTaskParam {
+
+ private String taskNo;
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MonitorController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MonitorController.java
index 2780bbc..89dc489 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MonitorController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MonitorController.java
@@ -5,7 +5,9 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.server.api.controller.open.param.QueryTaskParam;
import com.vincent.rsf.server.api.service.MonitorService;
+import com.vincent.rsf.server.api.service.OpenAsrsService;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.common.utils.FieldsUtils;
@@ -16,6 +18,7 @@
import com.vincent.rsf.server.system.controller.BaseController;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -38,6 +41,34 @@
@Autowired
private WarehouseStockService warehouseStockService;
+
+ @Autowired
+ private OpenAsrsService openAsrsService;
+
+ @GetMapping("/queryLoc")
+ @ApiOperation("澶у睆锛氬簱浣嶅簱瀛樼粺璁�")
+ public R queryLoc() {
+ return openAsrsService.queryLoc();
+ }
+
+ @GetMapping("/line/charts")
+ @ApiOperation("澶у睆锛氬叆鍑哄簱鎶樼嚎鍥炬暟鎹�")
+ public R locIoLineCharts() {
+ return openAsrsService.locIoLineCharts();
+ }
+
+ @GetMapping("/locDetl/statistics")
+ @ApiOperation("澶у睆锛氬簱瀛樻槑缁嗗垎椤电粺璁�")
+ public R locDetlStatistics() {
+ return openAsrsService.locDetlStatistics();
+ }
+
+ @PostMapping("/queryTask")
+ @ApiOperation("澶у睆锛氫换鍔℃煡璇�")
+ public R queryTask(@RequestBody QueryTaskParam param) {
+ return openAsrsService.queryTask(param);
+ }
+
/**
* 鑾峰彇鍑哄叆搴撴祦姘磋褰�
* @return
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/OpenAsrsService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/OpenAsrsService.java
new file mode 100644
index 0000000..de17000
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/OpenAsrsService.java
@@ -0,0 +1,18 @@
+package com.vincent.rsf.server.api.service;
+
+import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.server.api.controller.open.param.QueryTaskParam;
+
+/**
+ * 寮�鏀� ASRS 鏌ヨ锛堢數瑙嗘満绛夛級锛岃繑鍥炴牸寮忓榻� gsl OpenController
+ */
+public interface OpenAsrsService {
+
+ R queryLoc();
+
+ R locIoLineCharts();
+
+ R locDetlStatistics();
+
+ R queryTask(QueryTaskParam param);
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/OpenAsrsServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/OpenAsrsServiceImpl.java
new file mode 100644
index 0000000..526f9d4
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/OpenAsrsServiceImpl.java
@@ -0,0 +1,196 @@
+package com.vincent.rsf.server.api.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.vincent.rsf.framework.common.BaseRes;
+import com.vincent.rsf.framework.common.Cools;
+import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.server.api.controller.open.param.QueryTaskParam;
+import com.vincent.rsf.server.api.service.OpenAsrsService;
+import com.vincent.rsf.server.manager.controller.dto.LocStockDto;
+import com.vincent.rsf.server.manager.entity.Task;
+import com.vincent.rsf.server.manager.entity.TaskItem;
+import com.vincent.rsf.server.manager.enums.LocStsType;
+import com.vincent.rsf.server.manager.mapper.OpenAsrsMapper;
+import com.vincent.rsf.server.manager.service.LocService;
+import com.vincent.rsf.server.manager.service.TaskItemService;
+import com.vincent.rsf.server.manager.service.TaskService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class OpenAsrsServiceImpl implements OpenAsrsService {
+
+ @Resource
+ private OpenAsrsMapper openAsrsMapper;
+ @Resource
+ private LocService locService;
+ @Resource
+ private TaskService taskService;
+ @Resource
+ private TaskItemService taskItemService;
+
+ @Override
+ public R queryLoc() {
+ List<Map<String, Object>> rows = openAsrsMapper.countLocGroupByUseStatus();
+ int f = countStatus(rows, LocStsType.LOC_STS_TYPE_F.type);
+ int o = countStatus(rows, LocStsType.LOC_STS_TYPE_O.type);
+ int d = countStatus(rows, LocStsType.LOC_STS_TYPE_D.type);
+ int r = countStatus(rows, LocStsType.LOC_STS_TYPE_R.type);
+ int s = countStatus(rows, LocStsType.LOC_STS_TYPE_S.type);
+ int x = countStatus(rows, LocStsType.LOC_STS_TYPE_X.type);
+
+ int oqty = o + d;
+ int uqty = r + s;
+
+ List<Map<String, Object>> pie = new ArrayList<>();
+ pie.add(pieSlice("鍦ㄥ簱", f));
+ pie.add(pieSlice("绌�", oqty));
+ pie.add(pieSlice("浣跨敤", uqty));
+ pie.add(pieSlice("绂佺敤", x));
+
+ int total = f + oqty + uqty + x;
+ int used = f + uqty;
+ double usedPr = 0D;
+ if (total > 0) {
+ usedPr = BigDecimal.valueOf(used)
+ .multiply(BigDecimal.valueOf(100))
+ .divide(BigDecimal.valueOf(total), 1, RoundingMode.HALF_UP)
+ .doubleValue();
+ }
+
+ return R.ok(
+ Cools.add("pie", pie)
+ .add("stockCount", f)
+ .add("emptyCount", oqty)
+ .add("disableCount", x)
+ .add("total", total)
+ .add("used", used)
+ .add("usedPr", usedPr)
+ );
+ }
+
+ private static int countStatus(List<Map<String, Object>> rows, String status) {
+ if (rows == null) {
+ return 0;
+ }
+ for (Map<String, Object> row : rows) {
+ Object st = row.get("st");
+ if (st != null && status.equals(String.valueOf(st))) {
+ Object cnt = row.get("cnt");
+ if (cnt instanceof Number) {
+ return ((Number) cnt).intValue();
+ }
+ }
+ }
+ return 0;
+ }
+
+ private static Map<String, Object> pieSlice(String name, int value) {
+ Map<String, Object> m = new LinkedHashMap<>();
+ m.put("name", name);
+ m.put("value", value);
+ return m;
+ }
+
+ @Override
+ public R locIoLineCharts() {
+ List<Map<String, Object>> dbRows = openAsrsMapper.aggregateInOutByDay();
+ Map<String, int[]> byDay = new HashMap<>();
+ if (dbRows != null) {
+ for (Map<String, Object> row : dbRows) {
+ String ymd = row.get("ymd") == null ? null : String.valueOf(row.get("ymd"));
+ if (ymd == null || ymd.isEmpty()) {
+ continue;
+ }
+ int inq = toInt(row.get("inqty"));
+ int outq = toInt(row.get("outqty"));
+ byDay.put(ymd, new int[]{inq, outq});
+ }
+ }
+
+ List<Map<String, Object>> list = new ArrayList<>();
+ List<Integer> data1 = new ArrayList<>();
+ List<Integer> data2 = new ArrayList<>();
+
+ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+ Calendar calendar = Calendar.getInstance();
+ calendar.add(Calendar.DATE, -12);
+ for (int i = 0; i < 12; i++) {
+ calendar.add(Calendar.DATE, 1);
+ String str = sf.format(calendar.getTime());
+ int[] pair = byDay.get(str);
+ if (pair != null) {
+ data1.add(pair[0]);
+ data2.add(pair[1]);
+ } else {
+ data1.add(0);
+ data2.add(0);
+ }
+ }
+
+ Map<String, Object> inqty = new LinkedHashMap<>();
+ inqty.put("name", "鍏ュ簱鏁伴噺");
+ inqty.put("data", data1.toArray(new Integer[0]));
+ list.add(inqty);
+ Map<String, Object> outqty = new LinkedHashMap<>();
+ outqty.put("name", "鍑哄簱鏁伴噺");
+ outqty.put("data", data2.toArray(new Integer[0]));
+ list.add(outqty);
+
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("rows", list);
+ return R.ok(map);
+ }
+
+ private static int toInt(Object o) {
+ if (o == null) {
+ return 0;
+ }
+ if (o instanceof Number) {
+ return ((Number) o).intValue();
+ }
+ try {
+ return new BigDecimal(o.toString()).intValue();
+ } catch (Exception e) {
+ return 0;
+ }
+ }
+
+ @Override
+ public R locDetlStatistics() {
+ Page<Object> page = new Page<>(1, 100);
+ return R.ok(locService.getLocDetls(page));
+ }
+
+ @Override
+ public synchronized R queryTask(QueryTaskParam param) {
+ if (Cools.isEmpty(param)) {
+ return R.parse(BaseRes.PARAM);
+ }
+ if (Cools.isEmpty(param.getTaskNo())) {
+ return R.error("浠诲姟鍙穂taskNo]涓嶈兘涓虹┖");
+ }
+ Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, param.getTaskNo()));
+ if (task == null) {
+ return R.error("浠诲姟涓嶅瓨鍦�");
+ }
+ List<TaskItem> wrkDetls = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
+
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("taskNo", param.getTaskNo());
+ map.put("ioType", task.getTaskType());
+ map.put("wrkDetls", wrkDetls);
+ return R.ok().add(map);
+ }
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/OpenAsrsMapper.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/OpenAsrsMapper.java
new file mode 100644
index 0000000..f3fcf61
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/OpenAsrsMapper.java
@@ -0,0 +1,28 @@
+package com.vincent.rsf.server.manager.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 寮�鏀� ASRS 鏌ヨ锛堢數瑙嗘満绛夛級锛孲QL 涓� gsl 瑙嗗浘缁熻璇箟瀵归綈鍒版湰搴撹〃缁撴瀯
+ */
+@Mapper
+public interface OpenAsrsMapper {
+
+ @Select("SELECT use_status AS st, COUNT(*) AS cnt FROM man_loc WHERE (deleted IS NULL OR deleted = 0) GROUP BY use_status")
+ List<Map<String, Object>> countLocGroupByUseStatus();
+
+ /**
+ * 鎸夋棩姹囨�诲凡瀹屾垚鍏�/鍑哄簱浠诲姟娆℃暟锛堜笌 gsl asr_sta_inout_view 鎶樼嚎鍥剧敤閫斾竴鑷达級
+ */
+ @Select("SELECT DATE_FORMAT(COALESCE(end_time, update_time, create_time), '%Y-%m-%d') AS ymd, "
+ + "SUM(CASE WHEN task_type IN (1,10,53,54,57) AND IFNULL(task_status,0) IN (98,99,100) THEN 1 ELSE 0 END) AS inqty, "
+ + "SUM(CASE WHEN task_type IN (101,103,104,107,110) AND IFNULL(task_status,0) IN (198,199,200) THEN 1 ELSE 0 END) AS outqty "
+ + "FROM man_task_log WHERE (deleted IS NULL OR deleted = 0) "
+ + "AND COALESCE(end_time, update_time, create_time) >= DATE_SUB(CURDATE(), INTERVAL 14 DAY) "
+ + "GROUP BY ymd ORDER BY ymd")
+ List<Map<String, Object>> aggregateInOutByDay();
+}
--
Gitblit v1.9.1