fix:出库分配异常

This commit is contained in:
zhangzq
2024-09-03 00:16:22 +08:00
parent b9d30b3598
commit f823fb465f
2 changed files with 14 additions and 22 deletions

View File

@@ -84,7 +84,9 @@ public class OutStorageTask extends AbstractTask {
String end_struct_code = struct.getStruct_code(); String end_struct_code = struct.getStruct_code();
if (struct.getStor_code().equals("FStockId")){ if (struct.getStor_code().equals("FStockId")){
end_struct_code = SpringContextHolder.getBean(OutStorageTask.class).DoubleStor(struct); synchronized ("FStockId"){
end_struct_code = SpringContextHolder.getBean(OutStorageTask.class).DoubleStor(struct);
}
} }
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
task.setId(IdUtil.getStringId()); task.setId(IdUtil.getStringId());
@@ -112,13 +114,10 @@ public class OutStorageTask extends AbstractTask {
} }
@Transactional(propagation= Propagation.REQUIRES_NEW) @Transactional(propagation= Propagation.REQUIRES_NEW)
public synchronized String DoubleStor(StIvtStructattr struct) { public String DoubleStor(StIvtStructattr struct) {
String blockPoint = getZdPoint(struct.getStruct_code()); String blockPoint = getZdPoint(struct.getRow_num(),struct.getStruct_code());
//浅货位 //浅货位
log.info("1-----出库分配:{},当前货位:{}",blockPoint,struct.getStruct_code()); log.info("1-----出库分配:{},当前货位:{}",blockPoint,struct.getStruct_code());
RedissonUtils.lock(()->{
},"DoubleStor",1);
if (blockPoint.equals(struct.getStruct_code())){ if (blockPoint.equals(struct.getStruct_code())){
/** /**
* 当前为浅位 * 当前为浅位
@@ -127,7 +126,7 @@ public class OutStorageTask extends AbstractTask {
*/ */
SchBaseTask moveTask = taskService.getOne(new QueryWrapper<SchBaseTask>() SchBaseTask moveTask = taskService.getOne(new QueryWrapper<SchBaseTask>()
.eq("task_type",StatusEnum.IOBILL_TYPE_MOVE.code("移库")) .eq("task_type",StatusEnum.IOBILL_TYPE_MOVE.code("移库"))
.eq("vehcle_code",struct.getVehicle_code()) .eq("vehicle_code",struct.getVehicle_code())
.lt("status", StatusEnum.FORM_STATUS.code("完成"))); .lt("status", StatusEnum.FORM_STATUS.code("完成")));
if (moveTask !=null){ if (moveTask !=null){
log.info("1-----出库分配:浅位存在移库任务",moveTask.getTask_code()+"_"+moveTask.getVehicle_code()+"_"+moveTask.getPoint_code1()+"_"+moveTask.getPoint_code2()); log.info("1-----出库分配:浅位存在移库任务",moveTask.getTask_code()+"_"+moveTask.getVehicle_code()+"_"+moveTask.getPoint_code1()+"_"+moveTask.getPoint_code2());
@@ -183,19 +182,12 @@ public class OutStorageTask extends AbstractTask {
this.updateTask(data); this.updateTask(data);
} }
private static String getZdPoint(int row,String source_code) {
private static String getZdPoint(String point_code) { if (row == 2 || row == 3) {
if (point_code == null || point_code.length() != 9) { return source_code;
return null;
} }
String type = point_code.substring(0, 1); int blockRow = row == 1 ? 2 : 3;
int row = Integer.parseInt(point_code.substring(1, 3)); String replace = source_code.replaceFirst("L0" + row, "L0%s");
String rest = point_code.substring(3); return String.format(replace, blockRow);
if (row % 2 == 0) {
row -= 1;
} else {
row += 1;
}
return String.format("%s%02d%s", type, row, rest);
} }
} }

View File

@@ -7,8 +7,8 @@ spring:
druid: druid:
db-type: com.alibaba.druid.pool.DruidDataSource db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://${DB_HOST:192.168.1.218}:${DB_PORT:3306}/${DB_NAME:wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false # url: jdbc:mysql://${DB_HOST:192.168.1.218}:${DB_PORT:3306}/${DB_NAME:wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
# url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
username: ${DB_USER:root} username: ${DB_USER:root}
password: ${DB_PWD:123456} password: ${DB_PWD:123456}