Browse Source

乐观锁

master
常熟吴彦祖 7 months ago
parent
commit
77e523d219
  1. 16
      src/main/java/com/gaotao/modules/automatedWarehouse/controller/WcsIntegrationController.java
  2. 7
      src/main/java/com/gaotao/modules/automatedWarehouse/mapper/WcsIntegrationMapper.java
  3. 8
      src/main/java/com/gaotao/modules/automatedWarehouse/service/WcsIntegrationService.java
  4. 15
      src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsIntegrationServiceImpl.java
  5. 17
      src/main/resources/mapper/automatedWarehouse/WcsIntegrationMapper.xml

16
src/main/java/com/gaotao/modules/automatedWarehouse/controller/WcsIntegrationController.java

@ -3,6 +3,7 @@ package com.gaotao.modules.automatedWarehouse.controller;
import com.gaotao.common.utils.R;
import com.gaotao.modules.api.entity.IfsInventoryPart;
import com.gaotao.modules.api.service.IfsApiService;
import com.gaotao.modules.automatedWarehouse.entity.AgvStation;
import com.gaotao.modules.automatedWarehouse.entity.WmsLabelAndPalletData;
import com.gaotao.modules.automatedWarehouse.entity.PartPalletData;
import com.gaotao.modules.automatedWarehouse.entity.CallPalletRequestDto;
@ -172,6 +173,21 @@ public class WcsIntegrationController {
}
}
/**
* 获取可用的AGV站点列表已在后台过滤状态和类型- AI制作
* 参数statusDb - 站点状态0-空闲1-有货不传则返回所有正式站点
*/
@PostMapping(value="/getAvailableAgvStations")
@ResponseBody
public R getAvailableAgvStations(@RequestBody Map<String, Object> params) {
try {
List<AgvStation> stations = wcsIntegrationService.getAvailableAgvStations(params);
return R.ok().put("stations", stations);
} catch (Exception e) {
return R.error(e.getMessage());
}
}
/**
* 根据起点站点获取可达目标站点 - AI制作
*/

7
src/main/java/com/gaotao/modules/automatedWarehouse/mapper/WcsIntegrationMapper.java

@ -125,6 +125,13 @@ public interface WcsIntegrationMapper {
*/
List<Map<String, Object>> getAgvStations();
/**
* 获取可用的AGV站点列表按状态和类型过滤- AI制作
* @param statusDb 站点状态0-空闲1-有货null则不过滤
* @return 符合条件的正式站点列表
*/
List<AgvStation> getAvailableAgvStations(@Param("statusDb") Integer statusDb);
/**
* 根据目标区域查找第一个空闲站点 - AI制作
* @param stationArea 目标区域station_area

8
src/main/java/com/gaotao/modules/automatedWarehouse/service/WcsIntegrationService.java

@ -1,5 +1,6 @@
package com.gaotao.modules.automatedWarehouse.service;
import com.gaotao.modules.automatedWarehouse.entity.AgvStation;
import com.gaotao.modules.automatedWarehouse.entity.WmsLabelAndPalletData;
import com.gaotao.modules.automatedWarehouse.entity.PartPalletData;
import com.gaotao.modules.automatedWarehouse.entity.CallPalletRequestDto;
@ -56,6 +57,13 @@ public interface WcsIntegrationService {
*/
List<Map<String, Object>> getAgvStations(Map<String, Object> params) throws Exception;
/**
* 获取可用的AGV站点列表已在后台过滤状态和类型- AI制作
* @param params statusDb: 站点状态0-空闲1-有货null则不过滤
* @return 符合条件的正式站点列表
*/
List<AgvStation> getAvailableAgvStations(Map<String, Object> params) throws Exception;
/**
* 根据起点站点获取可达目标站点 - AI制作
*/

15
src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsIntegrationServiceImpl.java

@ -441,6 +441,21 @@ public class WcsIntegrationServiceImpl implements WcsIntegrationService {
return wcsIntegrationMapper.getAgvStations();
}
@Override
public List<AgvStation> getAvailableAgvStations(Map<String, Object> params) throws Exception {
System.out.println("开始获取可用AGV站点列表");
Integer statusDb = null;
if (params.containsKey("statusDb")) {
Object statusDbObj = params.get("statusDb");
if (statusDbObj != null) {
statusDb = Integer.parseInt(statusDbObj.toString());
}
}
List<AgvStation> stations = wcsIntegrationMapper.getAvailableAgvStations(statusDb);
System.out.println("获取可用AGV站点列表完成,数量:" + stations.size() + ",状态过滤:" + (statusDb == null ? "全部" : statusDb));
return stations;
}
@Override
public List<Map<String, Object>> getTargetStations(Map<String, Object> params) throws Exception {
String startStation = (String) params.get("startStation");

17
src/main/resources/mapper/automatedWarehouse/WcsIntegrationMapper.xml

@ -270,6 +270,23 @@
ORDER BY station_code
</select>
<!-- 获取可用的AGV站点列表(按状态和类型过滤) - AI制作 -->
<select id="getAvailableAgvStations" resultType="AgvStation">
SELECT id, station_code as stationCode, station_name as stationName,
area_type as areaType, station_area as stationArea,
warehouse_code as warehouseCode, location_code as locationCode,
status_db as statusDb, status, station_id as stationId,
station_type as stationType, active, remark,
location_x as locationX, location_y as locationY, location_z as locationZ
FROM agv_station
WHERE active = 'Y'
AND station_type = '正式站点'
<if test="statusDb != null">
AND status_db = #{statusDb}
</if>
ORDER BY station_code
</select>
<!-- 根据目标区域查找第一个空闲站点 - AI制作 -->
<select id="findFirstFreeStationByArea" resultType="java.lang.String">
SELECT TOP 1 station_code

Loading…
Cancel
Save