From 5807fc22aba974b4ca85a8049ecd983673b0ca28 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期一, 20 十月 2025 16:59:34 +0800
Subject: [PATCH] 1. 添加大屏接口 2. 任务站点确认修改
---
rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/MonitorServiceImpl.java | 71 +++++++
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/Constants.java | 134 ++++++++++++++
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java | 5
rsf-open-api/src/main/java/com/vincent/rsf/openApi/config/WebMvcConfig.java | 78 ++++++++
rsf-server/src/main/java/com/vincent/rsf/server/api/service/MonitorService.java | 10 +
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 11 +
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java | 4
rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/MonitorService.java | 15 +
rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/MonitorController.java | 34 +++
rsf-open-api/src/main/java/com/vincent/rsf/openApi/utils/Http.java | 42 ++++
rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java | 1
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MonitorController.java | 85 +++++++++
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MonitorServiceImpl.java | 17 +
13 files changed, 502 insertions(+), 5 deletions(-)
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/config/WebMvcConfig.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/config/WebMvcConfig.java
new file mode 100644
index 0000000..c663a60
--- /dev/null
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/config/WebMvcConfig.java
@@ -0,0 +1,78 @@
+package com.vincent.rsf.openApi.config;
+
+
+import com.vincent.rsf.openApi.entity.constant.Constants;
+import com.vincent.rsf.openApi.utils.Http;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.AsyncHandlerInterceptor;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * WebMvc閰嶇疆, 鎷︽埅鍣ㄣ�佽祫婧愭槧灏勭瓑閮藉湪姝ら厤缃�
+ *
+ * @author vincent
+ * @since 2019-06-12 10:11:16
+ */
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(getAsyncHandlerInterceptor())
+ .addPathPatterns("/**")
+ .excludePathPatterns("/swagger-resources/**", "/webjars/**","/erp/**", "/v2/**","/v3/**","/doc.html/**", "/swagger-ui.html/**");
+ }
+
+
+ @Bean
+ public AsyncHandlerInterceptor getAsyncHandlerInterceptor() {
+ return new AsyncHandlerInterceptor(){
+ @Override
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+ Http.cors(response);
+ return true;
+ }
+ };
+ }
+
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
+ registry.addResourceHandler("swagger-ui.html")
+ .addResourceLocations("classpath:/META-INF/resources/");
+ registry.addResourceHandler("doc.html")
+ .addResourceLocations("classpath:/META-INF/resources/");
+ registry.addResourceHandler("/webjars/**")
+ .addResourceLocations("classpath:/META-INF/resources/webjars/");
+ }
+
+
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ registry.addMapping("/**")
+ .allowedOriginPatterns("*")
+ .allowedHeaders("*")
+ .exposedHeaders(Constants.TOKEN_HEADER_NAME)
+ .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH")
+ .allowCredentials(true)
+ .maxAge(3600);
+ }
+
+
+ public static void cors(HttpServletResponse response){
+ // 璺ㄥ煙璁剧疆
+ response.setHeader("Access-Control-Max-Age", "3600");
+ response.setHeader("Access-Control-Allow-Origin", "*");
+ response.setHeader("Access-Control-Allow-Methods", "*");
+ response.setHeader("Access-Control-Allow-Headers", "*");
+ response.setHeader("Access-Control-Expose-Headers", Constants.TOKEN_HEADER_NAME);
+ }
+
+}
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
new file mode 100644
index 0000000..084e62c
--- /dev/null
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/MonitorController.java
@@ -0,0 +1,34 @@
+package com.vincent.rsf.openApi.controller;
+
+import com.vincent.rsf.openApi.entity.dto.CommonResponse;
+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.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+
+/**
+ * 澶у睆
+ */
+@RestController
+@RequestMapping("/monitor")
+public class MonitorController {
+
+ @Autowired
+ private MonitorService monitorService;
+ /**
+ * 鑾峰彇鍑哄叆搴撴祦姘磋褰�
+ * @return
+ */
+ @PostMapping("/inOut/page")
+ @ApiOperation("鑾峰彇鍏ュ嚭搴撴祦姘磋褰�")
+ public CommonResponse getInOutHis(@RequestBody Map<String, Object> param) {
+ return monitorService.getInOutHistories(param);
+ }
+
+}
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/Constants.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/Constants.java
new file mode 100644
index 0000000..0fe215b
--- /dev/null
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/Constants.java
@@ -0,0 +1,134 @@
+package com.vincent.rsf.openApi.entity.constant;
+
+/**
+ * 绯荤粺甯搁噺
+ * Created by vincent on 2019-10-29 15:55
+ */
+public class Constants {
+ /**
+ * 榛樿鎴愬姛鐮�
+ */
+ public static final int RESULT_OK_CODE = 0;
+
+ /**
+ * 榛樿澶辫触鐮�
+ */
+ public static final int RESULT_ERROR_CODE = 1;
+
+ /**
+ * 榛樿鎴愬姛淇℃伅
+ */
+ public static final String RESULT_OK_MSG = "Request success";
+
+ /**
+ * 榛樿澶辫触淇℃伅
+ */
+ public static final String RESULT_ERROR_MSG = "Internal server error!";
+
+ /**
+ * 鏃犳潈闄愰敊璇爜
+ */
+ public static final int UNAUTHORIZED_CODE = 403;
+
+ /**
+ * 鏃犳潈闄愭彁绀轰俊鎭�
+ */
+ public static final String UNAUTHORIZED_MSG = "No access right";
+
+ /**
+ * 鏈璇侀敊璇爜
+ */
+ public static final int UNAUTHENTICATED_CODE = 401;
+
+ /**
+ * 鏈璇佹彁绀轰俊鎭�
+ */
+ public static final String UNAUTHENTICATED_MSG = "Please log in first";
+
+ /**
+ * 鐧诲綍杩囨湡閿欒鐮�
+ */
+ public static final int TOKEN_EXPIRED_CODE = 401;
+
+ /**
+ * 鐧诲綍杩囨湡鎻愮ず淇℃伅
+ */
+ public static final String TOKEN_EXPIRED_MSG = "Login expired";
+
+ /**
+ * 闈炴硶token閿欒鐮�
+ */
+ public static final int BAD_CREDENTIALS_CODE = 401;
+
+ /**
+ * 闈炴硶token鎻愮ず淇℃伅
+ */
+ public static final String BAD_CREDENTIALS_MSG = "Please log out and log in again";
+
+ /**
+ * 琛ㄧず鍗囧簭鐨勫��
+ */
+ public static final String ORDER_ASC_VALUE = "asc";
+
+ /**
+ * 琛ㄧず闄嶅簭鐨勫��
+ */
+ public static final String ORDER_DESC_VALUE = "desc";
+
+ /**
+ * token閫氳繃header浼犻�掔殑鍚嶇О
+ */
+ public static final String TOKEN_HEADER_NAME = "Authorization";
+
+ /**
+ * token閫氳繃鍙傛暟浼犻�掔殑鍚嶇О
+ */
+ public static final String TOKEN_PARAM_NAME = "access_token";
+
+ /**
+ * token璁よ瘉绫诲瀷
+ */
+ public static final String TOKEN_TYPE = "Bearer";
+
+ /**
+ * 搴撳瓨鍑哄簱
+ */
+ public static final String TASK_TYPE_OUT_STOCK = "outStock";
+
+ /**
+ * 搴撳瓨鐩樼偣鍑哄簱
+ */
+ public static final String TASK_TYPE_OUT_CHECK = "check";
+
+ /**
+ * 鍗曟嵁鍑哄簱
+ */
+ public static final String TASK_TYPE_ORDER_OUT_STOCK = "OrderOutStock";
+
+ /**
+ * 娉㈡鍑哄簱
+ */
+ public static final String TASK_TYPE_WAVE_OUT_STOCK = "WaveOutStock";
+
+
+ /**
+ * 鎷f枡鍑哄簱
+ */
+ public static final String TASK_TYPE_OUT_PICK = "pick";
+
+ /**
+ * 鎺掑簭榛樿鍊�
+ */
+ public static final Integer TASK_SORT_DEFAULT_VALUE = 49;
+
+ /**
+ * 鎺掑簭鏈�澶у��
+ */
+ public static final Integer TASK_SORT_MAX_VALUE = 999;
+
+ /**
+ * 鎺掑簭鏈�灏忓��
+ */
+ public static final Integer TASK_SORT_MIN_VALUE = 0;
+
+}
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java
index 1e109fe..381c93c 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java
@@ -7,10 +7,8 @@
public static String callBack = "/rsf-server/wcs/receive/ex/msg";
-
//璁㈠崟淇℃伅鏌ヨ
public static String QUERY_ORDER_AND_DETLS = "/rsf-server/erp/query/order";
-
//璁㈠崟淇℃伅淇敼/娣诲姞
public static String MODIFY_ORDER_DETLS = "/rsf-server/order/sync/orders/update";
@@ -18,5 +16,8 @@
//鍒犻櫎鍗曟嵁淇℃伅
public static String ORDER_DEL = "/rsf-server/order/sync/orders/delete";
+ //鑾峰彇鍑哄叆搴撴祦姘�
+ public static String IN_OUT_HISTORIES = "/rsf-server/monitor/inOut/page";
+
}
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/MonitorService.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/MonitorService.java
new file mode 100644
index 0000000..5c77ce9
--- /dev/null
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/MonitorService.java
@@ -0,0 +1,15 @@
+package com.vincent.rsf.openApi.service;
+
+import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.openApi.entity.dto.CommonResponse;
+
+import java.util.Map;
+
+public interface MonitorService {
+ /**
+ * 鑾峰彇鍑哄叆搴撳巻鍙�
+ * @param param
+ * @return
+ */
+ CommonResponse getInOutHistories(Map<String, Object> param);
+}
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/MonitorServiceImpl.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/MonitorServiceImpl.java
new file mode 100644
index 0000000..724bc78
--- /dev/null
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/MonitorServiceImpl.java
@@ -0,0 +1,71 @@
+package com.vincent.rsf.openApi.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.cfg.CoercionAction;
+import com.fasterxml.jackson.databind.cfg.CoercionInputShape;
+import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.openApi.config.PlatformProperties;
+import com.vincent.rsf.openApi.entity.constant.WmsConstant;
+import com.vincent.rsf.openApi.entity.dto.CommonResponse;
+import com.vincent.rsf.openApi.service.MonitorService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.*;
+
+@Slf4j
+@Service
+public class MonitorServiceImpl implements MonitorService {
+
+ @Autowired
+ private PlatformProperties.WmsApi wmsApi;
+
+ @Autowired
+ private RestTemplate restTemplate;
+ /**
+ * 鑾峰彇鍑哄叆搴撳巻鍙�
+ * @param params
+ * @return
+ */
+ @Override
+ public CommonResponse getInOutHistories(Map<String, Object> params) {
+ if (Objects.isNull(params)) {
+ throw new CoolException("璁㈠崟鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ /**WMS鍩虹閰嶇疆閾炬帴*/
+ String wmsUrl = wmsApi.getHost() + ":" + wmsApi.getPort() + WmsConstant.IN_OUT_HISTORIES;
+ log.info("淇敼璁㈠崟淇℃伅鍙婄姸鎬侊細 {}锛� 璇锋眰鍙傛暟锛� {}", wmsUrl, JSONObject.toJSONString(params));
+ HttpHeaders headers = new HttpHeaders();
+ headers.add("Content-Type", "application/json");
+ headers.add("api-version", "v2.0");
+
+ HttpEntity httpEntity = new HttpEntity(params, headers);
+ ResponseEntity<String> exchange = restTemplate.exchange(wmsUrl, HttpMethod.POST, httpEntity, String.class);
+ log.info("璁㈠崟淇敼杩斿洖缁撴灉锛� {}", exchange);
+ if (Objects.isNull(exchange.getBody())) {
+ throw new CoolException("鏌ヨ澶辫触锛侊紒");
+ } else {
+ ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.coercionConfigDefaults().setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty);
+ try {
+ CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
+ if (result.getCode() == 200) {
+ return result;
+ } else {
+ throw new CoolException("鏌ヨ澶辫触锛侊紒");
+ }
+ } catch (JsonProcessingException e) {
+ throw new CoolException(e.getMessage());
+ }
+ }
+ }
+}
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/utils/Http.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/utils/Http.java
new file mode 100644
index 0000000..84fcf23
--- /dev/null
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/utils/Http.java
@@ -0,0 +1,42 @@
+package com.vincent.rsf.openApi.utils;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.openApi.entity.constant.Constants;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+
+/**
+ * Created by vincent on 2019-08-01
+ */
+public class Http {
+
+ public static void response(HttpServletResponse response, String baseRes){
+ response.setCharacterEncoding("utf-8");
+ response.setContentType("application/json; charset=utf-8");
+ try (PrintWriter out = response.getWriter()) {
+ R r = R.parse(baseRes);
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("total", "0");
+ jsonObject.put("record", "");
+ r.add(jsonObject);
+ out.print(JSON.toJSONString(r));
+ out.flush();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void cors(HttpServletResponse response){
+ // 璺ㄥ煙璁剧疆
+ response.setHeader("Access-Control-Max-Age", "3600");
+ response.setHeader("Access-Control-Allow-Origin", "*");
+ response.setHeader("Access-Control-Allow-Methods", "*");
+ response.setHeader("Access-Control-Allow-Headers", "*");
+ response.setHeader("Access-Control-Expose-Headers", Constants.TOKEN_HEADER_NAME);
+ }
+
+}
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
new file mode 100644
index 0000000..2780bbc
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MonitorController.java
@@ -0,0 +1,85 @@
+package com.vincent.rsf.server.api.controller.pda;
+
+
+import com.alibaba.fastjson.JSONObject;
+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.service.MonitorService;
+import com.vincent.rsf.server.common.domain.BaseParam;
+import com.vincent.rsf.server.common.domain.PageParam;
+import com.vincent.rsf.server.common.utils.FieldsUtils;
+import com.vincent.rsf.server.manager.controller.params.WarehouseStockParam;
+import com.vincent.rsf.server.manager.entity.ViewStockManage;
+import com.vincent.rsf.server.manager.enums.ViewStockType;
+import com.vincent.rsf.server.manager.service.WarehouseStockService;
+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.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+
+/**
+ * 澶у睆
+ */
+@RestController
+@RequestMapping("/monitor")
+public class MonitorController extends BaseController {
+
+ @Autowired
+ private MonitorService monitorService;
+
+ @Autowired
+ private WarehouseStockService warehouseStockService;
+ /**
+ * 鑾峰彇鍑哄叆搴撴祦姘磋褰�
+ * @return
+ */
+ @PostMapping("/inOut/page")
+ @ApiOperation("鑾峰彇鍏ュ嚭搴撴祦姘磋褰�")
+ public R getInOutHis(@RequestBody Map<String, Object> param) {
+ if (Objects.isNull(param)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ BaseParam baseParam = buildParam(param, BaseParam.class);
+ PageParam<ViewStockManage, BaseParam> pageParam = new PageParam<>(baseParam, ViewStockManage.class);
+ WarehouseStockParam stockParam = JSONObject.parseObject(JSONObject.toJSONString(param), WarehouseStockParam.class);
+ String type = Objects.isNull(stockParam.getAggType()) ? ViewStockType.VIEW_STOCK_TYPE_MATNR.val : stockParam.getAggType();
+ ViewStockManage stock = stockParam.getStock();
+ QueryWrapper<ViewStockManage> wrapper = new QueryWrapper<>();
+
+ if (type.equals(ViewStockType.VIEW_STOCK_TYPE_SUPPLIER.val)) {
+ wrapper.groupBy("splr_id");
+ } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_BATCH.val)) {
+ wrapper.groupBy("batch");
+ } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_WAREHOUSE.val)) {
+ wrapper.groupBy("warehouse");
+ } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_FIELDSINDEX.val)) {
+ wrapper.groupBy("fields_index");
+ } else {
+ wrapper.groupBy("matnr_id");
+ }
+
+ FieldsUtils.setFieldsFilters(wrapper, pageParam, ViewStockManage.class);
+
+ IPage<ViewStockManage> pageResult = warehouseStockService.pageByStock(pageParam, wrapper);
+ List<ViewStockManage> records = pageResult.getRecords();
+ for (ViewStockManage record : records) {
+ if (!Objects.isNull(record.getFieldsIndex())) {
+ Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
+ record.setExtendFields(fields);
+ }
+ }
+ pageResult.setRecords(records);
+
+ return R.ok(pageResult);
+ }
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MonitorService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MonitorService.java
new file mode 100644
index 0000000..4d0fea3
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MonitorService.java
@@ -0,0 +1,10 @@
+package com.vincent.rsf.server.api.service;
+
+import com.vincent.rsf.framework.common.R;
+
+import java.util.Map;
+
+public interface MonitorService {
+
+ R getInOutHistories(Map<String, Object> param);
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MonitorServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MonitorServiceImpl.java
new file mode 100644
index 0000000..d2ac10d
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MonitorServiceImpl.java
@@ -0,0 +1,17 @@
+package com.vincent.rsf.server.api.service.impl;
+
+import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.server.api.service.MonitorService;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+@Service
+public class MonitorServiceImpl implements MonitorService {
+
+
+ @Override
+ public R getInOutHistories(Map<String, Object> param) {
+ return R.ok();
+ }
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
index 44d67d6..ccfd0fc 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
@@ -53,6 +53,7 @@
"/swagger-ui/**",
"/ws/**",
"/wcs/**",
+ "/monitor/**",
"/mcp/**"
};
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java
index 983ac11..aa8edf6 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java
@@ -11,7 +11,6 @@
import com.vincent.rsf.server.manager.controller.params.WarehouseStockParam;
import com.vincent.rsf.server.manager.entity.StockItem;
import com.vincent.rsf.server.manager.entity.ViewStockManage;
-import com.vincent.rsf.server.manager.entity.WarehouseAreasItem;
import com.vincent.rsf.server.manager.enums.ViewStockType;
import com.vincent.rsf.server.manager.service.WarehouseStockService;
import com.vincent.rsf.server.system.controller.BaseController;
@@ -36,8 +35,7 @@
@Autowired
private WarehouseStockService warehouseStockService;
-
- @PreAuthorize("hasAuthority('manager:locItem:list')")
+// @PreAuthorize("hasAuthority('manager:locItem:list')")
@PostMapping("/page")
public R page(@RequestBody Map<String, Object> param) {
if (Objects.isNull(param)) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index 0524f20..ed192ce 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -347,6 +347,17 @@
if (!this.save(task)) {
throw new CoolException("浠诲姟淇濆瓨澶辫触锛侊紒");
}
+ BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, deviceSite.getSite()));
+ if (Objects.isNull(station) || station.getUseStatus() != LocStsType.LOC_STS_TYPE_O.type) {
+ throw new CoolException("绔欑偣涓嶅瓨鍦ㄦ垨绔欑偣涓嶅浜庣┖搴撶姸鎬侊紒锛�");
+ }
+ station.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
+
+ if (basStationService.updateById(station)) {
+ throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
+ }
+
+
if (!locService.update(new LambdaUpdateWrapper<Loc>().eq(Loc::getCode, task.getTargLoc())
.set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_S.type).set(Loc::getBarcode, pakin.getBarcode()))) {
throw new CoolException("搴撲綅棰勭害澶辫触锛侊紒");
--
Gitblit v1.9.1